본문 바로가기

알고리즘261

[2019 카카오 기출] 튜플 튜플의 순서는 입력된 문자열에서 각 숫자가 몇 번씩 나왔는지 내림차순으로 정렬하면 그게 튜플의 순서입니다. 이 성질만 캐치하셨면 남은 문제는 주어진 스트링을 어떻게 파싱하느냐가 전부입니다. 2020. 5. 2.
[BOJ]18808번: 스티커 붙이기 바킹독님 모의고사 시뮬레이션 문제입니다. 시간복잡도는 O(4*N*M*K*R*C)을 해도 64,000,000 이므로 제한시간 내에 들어올 수 있습니다. 주어진 상황을 얼마나 잘 나누어 구현했느냐가 중요한 문제입니다. 2020. 5. 2.
[2019 카카오 기출] 길 찾기 게임 위 출처를 보고 해결한 문제입니다. 이진트리를 만드는 방법을 비교적 간단하게 구현하신 거 같아서 가져왔습니다. 해결 방법은 아래와 같겠지요. 1. 주어진 노드를 Y축 내림차순, X축 오름차순으로 정렬 2. 이진트리 생성 3. preOrder && postOrder 주어진 데이터에 대해 이진트리 생성하는 것이 이 문제의 전부라고 생각합니다. 자세한 주석은 코드에 달아놓았습니다. 2020. 5. 1.
[BOJ]15655번: N과 M(6) 조합 문제입니다. combination(idx + 1, cnt) combination(idx + 1, cnt + 1) 위 코드 두 줄의 의미가 가장 중요합니다. idx: 배열의 숫자 중 탐색을 수행할 인덱스 번호 cnt: N개 중 현재 몇 개를 뽑았는지 조합은 특정 숫자에 대해 뽑을지/말지를 결정합니다. 그러므로 매 깊이마다 최대 2개로 뻗어나갈 수 있습니다. 이를 통해 특정 숫자 num[idx]를 뽑을 수 있다면, 특정 숫자를 뽑는 combination(idx+1,cnt+1)과 뽑지 않는 combination(idx+1,cnt)을 모두 수행하고, 특정 숫자가 이미 사용되어 뽑을 수 없다면 뽑지 않는 combination(idx+1,cnt)만 수행해줍니다. 2020. 3. 6.