본문 바로가기

Algorithm

(10)
프로그래머스 - 타겟 넘버 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript ※ 문제 설명은 위 링크 참고 문제 풀이 permutation 과 dfs 그 어딘가에 있는 문제 같다. 주어진 numbers 의 길이 만큼만 + , - 연산을 계속 진행하면 된다. 핵심 dfs 함수는 인자로는 cur, count 두 개를 받고 다음과 같은 의미를 가진다. cur : + , - 연산으로 지금까지 계산한 값 count : 현재까지 사용한 numbers 내의 숫자 개수 function dfs(cur, count) { // numbers 의 length 만큼 탐색했다면 현재까지 계산 된 값이 target 과 일치하는지 확인한다. if(count ==..
위장 분류 : 해시 문제 프로그래머스 - 해시 - 위장 programmers.co.kr/learn/courses/30/lessons/42578?language=javascript 문제 풀이 각 옷의 타입별로 몇가지의 옷들이 있는지 기록한다. => 각 옷의 타입을 key 로 하는 해시맵을 만들면 된다. 해당 옷으로 만들 수 있는 경우의 수를 구한다. 경우의 수를 구하는 것도 매우 간단하다. 각 옷 종류의 개수 + 1 한 값을 모두 곱해준다음에 1을 빼면 된다. 상의 3종류, 하의 2종류, 모자 2 종류가 있다고 하자. A1, A2, A3 , B1, B2, C1, C2 다. 이때 각각의 타입에서 하나씩 고를 수가 있다. 하지만 꼭 모든 옷을 선택해야 하는 것은 아니므로, 각 옷의 타입에는 선택하지 않는 경우도 들..
18324 - Race 문제 * 오역 주의 Bessie 는 K (1 x; cout
18788 - Swapity Swap 문제 오역 주의 농부 존의 N (1
18265 - MooBuzz 문제 ** 오역 주의 농부 존의 소들은 최근에 "FizzBuzz" 라 불리는 간단한 숫자 게임의 팬이 되었습니다. (...?) 게임의 규칙은 간답합니다. 원모양으로 서 있는 상태에서 소들은 1부터 차례대로 숫자를 세고, 각각의 소는 자신의 차례가 되면 하나의 숫자를 말합니다. 만약 한 소가 3의 배수에 해당하는 숫자를 말할 차례가 되면, 숫자 대신 "Fizz" 를 말해야 합니다. 만약 한 소가 5의 배수에 해당하는 숫자를 말할 차례가 되면, 숫자 대신 "Buzz" 를 말해야 합니다. 만약 한 소가 15의 배수에 해당하는 숫자를 말할 차례가 되면, 숫자 대신 "FizzBuzz" 를 말해야 합니다. 게임의 첫 부분은 아래와 같이 진행됩니다. 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz..
18267 - Milk Visits 문제 ** 오역이 있을 수 있으니 참고 부탁드립니다. 농부 John 은 N (1 ~ 105) 개의 농장을 지을 계획이다. 각 농장은 N-1 개의 길로 연결되어 있고, 농장은 tree 구조를 형성한다. (즉, 모든 농장들은 cycle 을 형성하지 않고, 어떻게든 다른 농장으로 갈 수 있다.) 각 농장은 소를 가지고 있으며, 소의 품종은 Guernsey 또는 Holsein 이다. Jhon 의 M (1 ~ 105) 명의 친구들은 종종 놀러온다. 친구 i 가 방문하는 동안, 존은 Ai 부터 Bi 까지 가는 유일한(unique) 길을 따라 친구와 함께 걷는다. 그들은 길을 따라 걸으면서 소의 우유도 먹을 수 있다. (john 씨 친절) 그의 친구들은 Guernsey 우유 나 Holstein 우유만 먹을 수 있다...
Gridland Metro https://www.hackerrank.com/challenges/gridland-metro/problem 분류 : Search 문제 설명 n x m 으로 나타낼 수 있는 Gridland 에는 수평 방향의 철길들이 있다. 즉 각각의 철길은 (r, c1, c2) 로 나타낼 수 있다. r 은 row , c1 은 start 지점, c2 는 end 지점을 나타낸다. 철길이 있는 곳을 제외하고 lampost 들을 설치하려고 하는데, 설치할 수 있는 lampost 의 개수는 ? Input 예시 첫 줄에는 n, m, k 가 주어진다. k 는 철길의 개수다. 다음에는 k 개의 철길 정보가 주어진다. 철길 정보는 r , c1, c2 순으로 입력된다. 1 > n >> m >> k; vector input(k); for(..
Stable Sorting stable sorting 정렬 후에도 기존 배열의 순서가 유지되는 정렬 [(2,b), (1,c), (3,c), (1,a)] 리스트가 있고, 숫자 기준으로 오름차순 정렬한다고 했을 때 stable sorting 을 하면 [(1,c), (1,a) , (2,b), (3,c)] 로 정렬됨. ( key 가 1인 데이터의 원본 순서가 유지되어 있음) 종류 : selection sorting, bubble sorting c++ 에서는 std::stable_sort 를 쓰면 stable sorting 할 수 있다.#include .... std::stable_sort(v.begin(), v.end()); unstable sorting 정렬 후에 기존 배열의 순서가 유지되지 않는 정렬 종류 : insertion sor..