[Silver III] 1로 만들기 - 1463
·
코딩테스트/백준
[Silver III] 1로 만들기 - 1463문제 링크성능 요약메모리: 18092 KB, 시간: 120 ms분류다이나믹 프로그래밍제출 일자2024년 10월 18일 16:19:04문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 다음은 문제에 제시된 예시이다. 10의 경우에 10 → 9 → 3 → 1 로 3번 만에 만들 수 있다. ..
[Gold V] 토마토 - 7576
·
코딩테스트/백준
[Gold V] 토마토 - 7576문제 링크성능 요약메모리: 128204 KB, 시간: 592 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 17일 10:05:23문제 설명철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며..
[Gold II] 가운데를 말해요 - 1655
·
코딩테스트/백준
[Gold II] 가운데를 말해요 - 1655문제 링크성능 요약메모리: 39032 KB, 시간: 1056 ms분류자료 구조, 우선순위 큐제출 일자2024년 10월 16일 03:25:51문제 설명백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다.예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 백준이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오.입..
[level 3] 베스트앨범 - 42579
·
코딩테스트/프로그래머스
[level 3] 베스트앨범 - 42579문제 링크성능 요약메모리: 75.3 MB, 시간: 4.25 ms구분코딩테스트 연습 > 해시채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 13일 18:18:47문제 설명스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.속한 노래가 많이 재생된 장르를 먼저 수록합니다.장르 내에서 많이 재생된 노래를 먼저 수록합니다.장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, ..
[level 2] 괄호 회전하기 - 76502
·
코딩테스트/프로그래머스
[level 2] 괄호 회전하기 - 76502문제 링크성능 요약메모리: 85.5 MB, 시간: 1.40 ms구분코딩테스트 연습 > 월간 코드 챌린지 시즌2채점결과Empty문제 설명다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다.(), [], {} 는 모두 올바른 괄호 문자열입니다.만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다.만약 A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다.대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 ..
[level 2] 방문 길이 - 49994
·
코딩테스트/프로그래머스
[level 2] 방문 길이 - 49994문제 링크성능 요약메모리: 83.5 MB, 시간: 22.35 ms구분코딩테스트 연습 > Summer/Winter Coding(~2018)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 07일 20:51:47문제 설명게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다.U: 위쪽으로 한 칸 가기D: 아래쪽으로 한 칸 가기R: 오른쪽으로 한 칸 가기L: 왼쪽으로 한 칸 가기캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다.예를 들어, "ULURRDLLU"로 명령했다면1번 ..
[level 2] 숫자 변환하기 - 154538
·
코딩테스트/프로그래머스
[level 2] 숫자 변환하기 - 154538문제 링크성능 요약메모리: 161 MB, 시간: 255.38 ms구분코딩테스트 연습 > 연습문제채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 07일 20:26:52문제 설명자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다.x에 n을 더합니다x에 2를 곱합니다.x에 3을 곱합니다.자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요.제한사항1 ≤ x ≤ y ≤ 1,000,0001 ≤ n y입출력 예xynresult1040521040301254..
[level 2] 스킬트리 - 49993
·
코딩테스트/프로그래머스
[level 2] 스킬트리 - 49993문제 링크성능 요약메모리: 73.3 MB, 시간: 0.32 ms구분코딩테스트 연습 > Summer/Winter Coding(~2018)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 04일 16:44:42문제 설명선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트..
[level 2] 피로도 - 87946
·
코딩테스트/프로그래머스
[level 2] 피로도 - 87946문제 링크성능 요약메모리: 80.6 MB, 시간: 6.98 ms구분코딩테스트 연습 > 완전탐색채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 01일 16:51:38문제 설명XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로..
[level 3] 단어 변환 - 43163
·
코딩테스트/프로그래머스
[level 3] 단어 변환 - 43163문제 링크성능 요약메모리: 69.7 MB, 시간: 0.66 ms구분코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 09월 30일 14:45:45문제 설명두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "h..