[알고리즘] 문제풀이 연습 69

[알고리즘] 정렬 - k번째 lv2

체이닝으로 풀어야 속도로 테스트 케이스 다 통과할 수 있음 아래 풀이로 풀었을 때는 케이스를 다 맞추진 못했음. // 첫번째 풀이 function solution(array, commands) { let answer = []; let newArray = []; commands.forEach((e) => { newArray = []; for (let i = e[0] - 1; i < e[1]; i++) { newArray.push(array[i]); } newArray.sort(); console.log(newArray); answer.push(newArray[e[2] - 1]); }); return answer; } 1. map 사용해서 한 줄씩 뽑는다. 2. array.slice(first index, ..

[알고리즘] 프로그래머스 lv2 - 위장

2차원 배열을 넣고 map 을 돌리면 item 은 배열의 첫번째 배열이 나옴 set을 활용하면 map에서 (key, value) 쌍으로 넣을 수 있음 get은 기존에 있는 값을 가져오는 것 ex. combiClothes.get(item[1]) 하면 기존에 있던 combiClothes에서 key가 item[1]인 'eyewear'라던지 거기에 대응하는 값이 반환됨 map에서 key에 대응하는 value 반환하기 map이름.get(key) 함수를 실행하면 해당 map에서 그 key에 대응하는 value가 반환됨. 배열 for문 for(let cloth of clothes) { } 어떤 객체에 key와 value 입력하는 법 let sorts = { }; sorts['이것이 key'] = '이것이 value'..

[알고리즘 스터디 #01] 자바스크립트 알고리즘 / 문법 공부

0612 #01. 자바스크립트 알고리즘 스터디 문제 풀며 필요 개념 정리 1. var, const, let const, let은 ES6 문법이며 var는 ES6 이전의 문법이다. var 는 {} 단위의 scope이 아닌 function 단위의 scope을 가진다. var : 같은 변수를 두번 선언했는데도 오류가 나지 않음 ;;;;;; => 많은 오류 발생 보통 프로그래밍 언어들이 가지는 변수 scope과 다름. var hello = "hello world"; var hello = "bye world" console.log(hello); // bye world const: constance의 약자. 한번 선언된 상수의 값을 변경 할 수 없다. const hello = 'hello'; hello = 'cha..

[DFS] 개념이해 및 Programmers lv.2 타겟넘버 (자료구조)

개념 이해 자료구조란? [Data Structures] 자료구조란? 나쁜 프로그래머는 코드를 걱정한다. 좋은 프로그래머는 자료구조와 그 관계에 대해 걱정한다. medium.com 자료구조 트리선회 [Data Structures] 트리선회 (DFS & BFS) 자료구조 중, 트리의 각 노드를 한 번 씩 방문하는 것을 트리 순회(Tree traversal)라고 한다. 아래와 같은 트리 구조에서 방문했던 노드를 재방문 하지 않고 효율적으로 전체 순회를 하기 위해서는 medium.com - DFS 알고리즘은 트리로 이해하는 것이 가장 쉬움 - 트리에서 Depth를 내려갔다가 다시 올라가고 for문과 섞여 있어서 이해하기 쉬움 - 재귀함수 호출을 depth(깊이로) 경우의 수를 Breadth(너비)로 생각해보아라..

[백준] 15685 드래곤커브 : 시뮬레이션

https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10) 입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다. 방향은 0, 1, 2, www.acmicpc.net // 드래곤 커브 #include #include #include using namespace std; bool map[102][1..

[프로그래머스] p와 y찾기 : level 1

#include #include using namespace std; bool solution(string s) { bool answer = true; int Pcnt = 0; int Ycnt = 0; for(int i =0; i < s.size(); i++) { if(s[i] == 'p' || s[i] == 'P') { Pcnt++; } if(s[i] == 'y' || s[i] == 'Y') { Ycnt++; } } if(Pcnt == 0 && Ycnt == 0) { answer = true; } if(Pcnt == Ycnt) answer = true; else answer = false; return answer; } level 1은 어느정도 풀 수 있으니 이제 level 2를 도전해봐야겠다.

[프로그래머스] 소수찾기 : level 1 (에라토스테네스의 체)

https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 | 프로그래머스 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 입출력 예 설명 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재 programmers.co.kr 방법 1) 시간초과 : 시간 복잡도 O(N^2) #include #inc..

[프로그래머스] 서울에서 김서방 찾기 int to string : level 1

//서울에서 김서방 찾기 #include #include #include using namespace std; string solution(vector seoul) { string answer = "김서방은 "; for (int i = 0; i < seoul.size(); i++) { if (seoul[i] == "Kim") { // int형 i를 string으로 형변환 string num; num = to_string(i); answer = answer + num + "에 있다"; break; } } return answer; } int main() { vector v = { "Jane", "Kim", "Dahae" }; cout int 인자가 char*형이기 때문에 c_str()함수로 변환해주어야함...