본문 바로가기

알고리즘

(12)
[이코테] 숫자 카드 게임 풀이 과정 1. 문제를 정독하면서 메모한다. 주의해야 할 것은 ※으로 표시한다. 입력 첫째 줄에 행의 개수 N, 열의 개수 M이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 카드에 적힌 숫자가 주어진다. 입력 조건과 필요한 변수를 메모했다. 2. 알고리즘을 떠올리고 적용하려고 노력한다. 역시 그리디 알고리즘 실전 문제이므로 알고리즘은 알고 있었다. 그리디 알고리즘은 현재 상황에서 가장 좋은 것을 선택하는 알고리즘이다. 행을 선택하면 뽑는 카드가 자동으로 정해지므로, 어떤 행을 선택하느냐가 중요하다. 최종적으로 가장 높은 숫자의 카드를 뽑기 위해서는 행마다 가장 숫자가 낮은 카드를 미리 계산할 수밖에 없다. 행마다 가장 숫자가 낮은 카드를 구하고, 그 카드들 중 가장 높은 숫자의 카드를 뽑으면 된다. 그리..
[이코테] 큰 수의 법칙 풀이 과정 1. 문제를 정독하면서 메모한다. 주의해야 할 것은 ※으로 표시한다. 입력 첫째 줄에 배열의 크기 N, 주어진 수들을 더하는 횟수 M, 연속해서 초과하여 더해질 수 없는 횟수 K가 주어지고 둘째 줄에 배열에 해당하는 N개의 자연수가 주어진다. 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다는 것은 주의할 사항이므로 ※으로 따로 표시했다. 입력 조건도 메모했다. 그리고 문제에서 예시로 든 케이스를 하나하나 살펴보며 규칙을 찾으려 노력했다. 2. 알고리즘을 떠올리고 적용하려고 노력한다. 이건 그리디 알고리즘 실전 문제이므로 이미 알고리즘은 알고 있었다. 그리디 알고리즘은 지금 당장 좋은 것만 선택하는 알고리즘이다. 지금 당장 좋은 것만 선택했을 때 나올 수 있는 경우의 ..
[프로그래머스/레벨1] K번째수 풀이 과정 여러 코딩 테스트를 치르면서, 코딩 테스트 문제 푸는 방법을 정했다. 1. 문제를 정독하면서 메모(검은색으로 작성)한다. 주의해야 할 것은 ※으로 표시한다. 2. 알고리즘(분홍색으로 작성)을 떠올리고 적용하려고 노력한다. 3. 필요한 변수에 대해서는 변수명(하늘색으로 작성)을 작성한다. 4. 바로 문제 풀지 말고 주석을 달며 의사 코드를 작성한다. 5. 의사 코드에 맞춰 구현한다. 앞으로 이 순서대로 문제를 풀어볼 예정이다! 1. 문제를 정독하면서 메모한다. 주의해야 할 것은 ※으로 표시한다. 우선 문제 자체는 길지도 않고 어렵지도 않아서 메모할 것이 거의 없었다. 단, 인덱스가 0부터 시작한다는 점을 주의해야 했다. 문제에서 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]이라..
[프로그래머스/레벨1] 모의고사 풀이 과정 늘 문제 전체를 캡처하고 싶은데 문제가 너무 길어 다 캡처하기 힘들 때가 있다. 예를 들면 크레인 인형 뽑기 게임^^ 다행히 이번 문제는 문제 설명이 짧았다. 문제를 읽어보니 각 수포자가 찍는 방식에 패턴이 존재했다. 빨간색 선으로 그어놨는데, 1번 수포자의 경우 1, 2, 3, 4, 5를 반복하고, 2번 수포자의 경우 2, 1, 2, 3, 2, 4, 2, 5를 반복하고, 3번 수포자의 경우 3, 3, 1, 1, 2, 2, 4, 4, 5, 5를 반복한다. 그리고 answers는 문제의 진짜 정답이 순서대로 들은 배열이고, 가장 문제를 많이 맞힌 사람을 return해야 한다. 지금 보니 몇 번 수포자가 정답을 많이 맞혔는지 그 수포자의 번호를 return 하는 게 아니라, 번호가 담긴 배열을 r..
[프로그래머스/레벨1] 완주하지 못한 선수 풀이 과정 문제는 생각보다 쉬웠다. 특히 완주하지 못한 선수가 항상 1명이라는 점이 이 문제를 더 쉽게 만든 것 같다. 매개변수와 반환 값에 대한 설명에서 participant는 참여한 선수들을 담은 배열이고, completion은 완주한 선수들을 담은 배열이라는 것을 파악하고 간단하게 메모했다. 완주하지 못한 선수 return해야 하는 것도 메모했으면 좋을 것 같다. 지난 실수들을 생각하면서 이 문제에서 어떤 알고리즘 개념을 요구하는지 생각해보았다. 배열 요소 하나하나를 for문으로 탐색해야 한다는 점에서 탐색 알고리즘, 길 찾기 알고리즘이 생각나서 메모했다. 지금 검색해보니 탐색 알고리즘과 길 찾기 알고리즘은 완전히 다른 거고(^^) 탐색 알고리즘은 사실 처음 봤다. 학교에서 들은 수업에서는 배우지 ..