본문 바로가기

Algorithm Practice18

[Programmers] 성격 유형 검사하기 (Java) 문제링크 문제요약 RT, CF, JM, AN 총 4 가지 지표가 있고, 1~7에 따라 각 지표의 점수가 부여된다. 1 ~ 7 은 각각 \[매우 비동의, 비동의, 약간, 보통, 약간, 동의, 매우] 이런식이다. 지표의 순서는 바뀔 수 있고, 앞에오는 것이 비동의에 해당하고, 뒤에오는 것이 동의에 해당한다. 예를 들어, RT, 2 가 들어오면, R이 2점 획득한다. 접근방법 Map을 만들어, 각각에 해당되는 유형들의 점수를 기록한다. choice - 4 를 하게되면, 비동의에 해당되는 것들은 음수, 그 외는 양수가 된다. 따라서 만약 음수라면, survey의 첫번째 유형에 점수를 부여하고, 아니면 두번째 유형에 점수를 부여한다. 이렇게 하면 map에는 각 유형에 해당되는 점수들이 기록된다. 마지막으로 유형들.. 2023. 9. 27.
[Programmers] 크레인 인형뽑기 게임 (Java) 문제 링크 문제요약 위위 같은 그림이 있을 때, 각 열에 있는 것을 하나씩 올려 오른쪽 칸에 넣었을 때, 만약 같은 캐릭터가 연속되어 들어가게 되면 같은 캐릭터들은 사라지게 된다. 어느 칸을 움직일 지 담겨있는 moves 가 주어질 때, 사라진 인형의 개수를 구하여라. 접근 방법 오른쪽에 쌓이는 구조가 Stack 구조 이기 때문에, 매 move 마다 stack에 캐릭터를 담아주고 만약 stack의 가장 위가 집은 캐릭과 같다면, pop을 해준다. 문제 설명에는 아무것도 집지 못하는 경우는 없다고 하여 선택한 열이 비어있는 경우, 그냥 0을 받는 식으로 구현하였는데, 이렇게 하니 몇개의 테스트에서 통과하지 못하였다. 따라서 만약 아무것도 집히지 않아 0을 받는 다면, 아무일도 일어나지 않고 넘어가는 식으로.. 2023. 9. 27.
[Programmers] 하노이의 탑 (Java / Python) 문제링크 문제 설명 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다. 한 번에 하나의 원판만 옮길 수 있습니다. 큰 원판이 작은 원판 위에 있어서는 안됩니다. 하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하겠습니다. 1번에는 n개의 원판이 있고 이 n개의 원판을 3번 원판으로 최소 횟수로 옮기려고 합니다. 1번 기둥에 있는 원판의 개수 n이 매개변수로 주어질 때, n개의 원판을 3번.. 2023. 9. 6.
[Programmers] 멀쩡한 사각형 (Java) 문제링크 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 so.. 2023. 9. 5.