본문 바로가기

반응형

개발/Algorithm

(98)
[백준] 소수 단어(python) 2153번: 소수 단어 소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 www.acmicpc.net TL;DR 수학(Mathematics) 소수(Prime number) 문제 요약 1. a ~ z까지는 1 ~ 26, A ~ Z까지는 27로 대응된다. 2. 이 때, 주어진 문자열을 이루고 있는 각 문자의 합이 소수인지 아닌지 판별하는 프로그램을 작성하라. - 주어진 문자열을 구성하고 있는 알파벳들이 의미하는 숫자를 파악한 후 그 합을 더해 소수 판정을 하면 되는 문제이다. 입출력 형태 예시 1 :: 주어진 문자열 'UFRN'의 각 문자의 ..
[프로그래머스] lv2-다리를 지나는 트럭(python) 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr TL;DR 큐(Queue) 구현(Implementation) 문제 요약 1. 모든 트럭이 다리를 건너러면 최소 몇 초가 필요한지 알아내는 프로그램을 작성해야 한다. 2. 다리는 수용할 수 있는 트럭의 수와 무게 제한이 있으며 제한을 넘지 않을 경우 트럭은 다리에 올라올 수 있다. - 제한을 넘지 않으면서 트럭이 다리를 건널 수 있는 최소 수를 구하는 프로그램이다. - 문제에 나온 조건들을 적절한 자료구조와 함께 구현해야 한다. 입출력 ..
[백준] 3의 배수(python) 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net TL;DR 구현(Implementation) 문자열(String) 문제 요약 1. 주어진 자연수 X가 3의 배수인지 판정하기 위해서 제안된 "다른 문제로 바꾸어 풀기" 방법을 사용하려고 한다. 2. 다른 문제로 바꾸어 풀기는 다음과 같다. 1. X의 각 자릿수를 더한 수 Y를 만든다. 2. Y가 3의 배수인지 판별한다. 3. 알고 있는 3의 배수가 한 자리 수밖에 없다고 가정하면 Y가 한 자리 수가 나올 때 까지 다른 문제로 바꾸어 풀기를 진행해야 한다. 그 때의 문..
[백준] 방 번호(python) 백준, 방 번호 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net TL;DR 구현(Implementation) 문자열(string) 문제 요약 1. 다솜이의 방 번호를 만들기 위해 필요한 카드 세트의 수를 출력하는 프로그램을 작성해야 한다. 2. 6과 9는 뒤집어서 각각을 사용할 수 있다. - 0 ~ 9까지 있는 카드 세트를 활용하여 다솜이의 방 번호를 만들 때, 필요한 카드 세트의 수를 출력하는 프로그램을 작성하는 문제이다. - 6과 9를 동일하게 취급할 수 있다는 점을 문제 풀이에 활용해야 한다. 입출력 형태 예시 1 :: 9999가 주어졌다. 문제에서 6과 9를 뒤집어서 동일하게 사용할 수 있다고 하였으..
[백준] 단어 나누기(python) 백준, 단어 나누기 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net TL;DR 문자열(string) 완전 탐색(brute force) 문제 요약 1. 알파벳 소문자로 이루어진 단어를 세 개의 작은 단어들로 나누어 합쳤을 때 사전 순으로 가장 앞서는 단어를 출력하는 프로그램을 작성하라. 2. 나눠진 단어들은 적어도 길이가 1 이상이여야 한다. - 입력 받은 문자열을 3개로 나누고 나눈 작은 문자열을 뒤집어서 다시 합쳤을 때 가장 작은 문자열이 오도록 하면 된다. - 입력 문자열의 길이가 3 이상 50 이하로 주어..
[백준] 무한이진트리(python) 백준, 무한이진트리 2078번: 무한이진트리 첫째 줄에 두 정수 A, B(1 ≤ A, B ≤ 2,000,000,000)가 주어진다. 잘못된 입력은 주어지지 않는다고 가정한다. www.acmicpc.net TL;DR 트리(Tree) 수학(Mathematics) 문제 요약 1. 규칙에 의해 생성되는 무한 이진 트리에서 입력으로 받은 지점에 도착하기 까지 왼쪽 이동 횟수와 오른쪽 이동 횟수를 각각 구하는 프로그램을 작성하는 문제이다. 2. 규칙은 다음과 같다. 1. 루트에는 (1, 1)이 할당된다. 2. 어떤 노드 (a, b)가 할당되었을 때, 해당 노드의 왼쪽 자식은 (a + b, b)가 되고, 오른쪽 자식은 (a, a + b)가 할당된다. 3. 잘못된 입력은 주어지지 않는다고 가정한다. - 이진 트리에서 ..
[백준] 해변(python) 백준, 해변 14397번: 해변 단위 정육각형 이루어져 있는 지도가 주어졌을 때, 해변의 길이를 구하는 프로그램을 작성하시오. 해변은 정육각형의 변 중에서 한 쪽은 물인데, 한 쪽은 땅인 곳을 의미한다. www.acmicpc.net TL;DR 그래프 탐색 문제 요약 1. 정육각형으로 이루어져 있는 지도가 주어졌을 때, 해변의 길이를 구하는 프로그램을 작성하라. 2. 해변은 물(.)과 땅(#)이 맞닿아 있는 곳을 의미힌다. - 섬의 개수 구하기와 같은 문제에서는 노드가 정사각형으로 되어 있어 노드를 방문하며 해당 노드의 4방위를 탐색하는 식으로 문제를 해결할 수 있었다. 하지만 이 문제의 경우 정육각형 형태로 주어졌다는 것이 기존의 문제와 차이점이다. - 지도를 직접 그렸을 때, 규칙성을 찾아내서 그래프를..
[백준] 바닥 장식(python) 백준, 바닥 장식 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net TL;DR 그래프 탐색 깊이 우선 탐색(DFS) 문제 요약 1. 바닥 장식을 위해서 필요한 나무 판자의 개수를 구하는 프로그램이다. 2. -가 같은 행에 위치한다면 하나의 나무 판자로 만들 수 있다. 3. |가 같은 열에 위치한다면 하나의 나무 판자로 만들 수 있다. - 섬의 개수 문제의 응용 버전이다. -일 때는 인접한 행에 동일한 것이 있는지 확인하면 되고 |일 때는 인접한 열에 동일한 것이 있는지 확인하면 된다. 입출력 형태 예시 3 :: 같은 ..