본문 바로가기

2021/0611

Programmers - BFS/DFS ] Lv.2 타겟 넘버 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr ✍ 문제풀이 재귀로 구현해서 풀었다. 함수 dfs의 매개변수는 두 개이다. void dfs( int index, int total ) 로 index와 sum 값인 total이다. 함수는 간단하게 아래와 같이 구현한다. 1) idx == numbers.size( ) 이면 total == target을 체크하고 같으면 answer++. 함수를 종료한다. 2) bfs ( idx + 1, total + numbers.. 2021. 6. 2.
Programmers - 해시 ] Lv.2 위장 #해시 #map 코딩테스트 연습 - 위장 programmers.co.kr ✍ 문제풀이 스파이는 하루에 최소 한 개의 의상은 입습니다. 위의 조건을 만족하는 경우의 수를 계산해보자 만약 상의(a, b, c) 3가지, 얼굴(nn, mm) 2가지가 있다. 이 때 상의는 A, 얼굴은 B라고하자. 경우의 수는 1) a - X (상의 a와 얼굴은 아무것도 안 쓰는 경우) 2) b - X 3) c - X 4) nn - X 5) mm - X 6) a - nn 7) b - nn 8) c - nn 9) a - mm 10) b - mm 11) c - mm 12) X - X 총 12가지의 경우가 있다. 하지만 하루에 최소 한 개의 의상은 입으므로 12번인 둘 다 아무것도 입지 않는 경우를 제외해야 한다. 따라서 구현 식은 (.. 2021. 6. 2.
C++ ] Hash - map Hash란 Key-value쌍으로 데이터를 저장하는 자료구조입니다. Map Maps are associative containers that store elements formed by a combination of a key value and a mapped value, following a specific order. In a map, the key values are generally used to sort and uniquely identify the elements, while the mapped values store the content associated to this key. The types of key and mapped value may differ, and are grouped t.. 2021. 6. 2.