일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 코틀린
- 파이어스토어
- 멀티맵
- 백트래킹
- c++풀이
- 에러
- 그래프
- 다이나믹프로그래밍
- 브루트포스
- 백준
- stl
- dp
- BFS
- 안드로이드
- 다이나믹 프로그래밍
- dfs
- 코드트리조별과제
- 코드트리
- 그래프 탐색
- 파이어베이스
- 재귀
- 시뮬레이션
- c++
- 문자열
- 다익스트라
- 분할정복
- 풀이
- 코드트리 조별과제
- 맵
- 코딩테스트
- Today
- Total
목록풀이 (31)
Kangho_Story
알고리즘 분류구현브루트포스 알고리즘문제 설명N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다.입력 설명첫째 줄에 N과 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 수가 주어진다.출력 설명첫째 줄에 정답 정사각형의 크기를 출력한다.예제 입력3 54210122100221012 212342 4125534551 10123456789011 109785409507205510369408613967613073207669123304949323002489689769239548798413000116700200958894..
알고리즘 분류구현자료구조큐문제 설명요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.입력 설명첫째 줄에 N과 K가 빈칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)출력 설명예제와 같이 요세푸스 순열을 출력한다.예제 입력7 3예제 출력아이디어list..
알고리즘 분류수학다이나믹 프로그래밍문제 설명갑은 아주대학교 학생입니다. 갑은 팔달관 1층에서 학과 개강총회를 준비하고 있습니다. 갑은 피자를 N 판 시켰습니다. 식탁 위에 피자 N 판이 탑처럼 쌓여있습니다. 갑은 높이가 N 인 이 한 피자탑을, 높이가 1인 피자탑들로 분리시켜야 합니다. 갑은 이 일을 하기 싫었습니다. 하지만 다음과 같은 격언이 있습니다.“피할 수 없다면 즐겨라!” - 로버트 엘리어트격언대로, 갑은 혼자 놀기를 하며 즐겁게 일을 해결하기로 합니다. 그래서 다음과 같은 놀이를 하기로 했습니다. 먼저 놀이를 시작하기 전에, 식탁 위엔 N 개의 피자판이 하나의 탑으로 쌓여있습니다. 놀이가 시작되면, 갑은 식탁 위에 있는 피자탑들 중 하나를 고릅니다. 그리고 고른 피자탑을 두 개의 피자탑으로 분..
알고리즘 분류구현문자열문제 설명일 년 동안 세계일주를 하던 영식이는 여행을 하다 너무 피곤해서 근처에 있는 코레스코 콘도에서 하룻밤 잠을 자기로 하고 방을 잡았다.코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다. 방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다. 영식이는 이 열악한 환경에서 누울 수 있는 자리를 찾아야 한다. 영식이가 누울 수 있는 자리에는 조건이 있다. 똑바로 연속해서 2칸 이상의 빈칸이 존재하면 그곳에 몸을 양 옆으로 쭉 뻗으면서 누울 수 있다. 가로로 누울 수도 있고 세로로 누울 수도 있다. 누울 때는 무조건 몸을 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다. (중간에 어정쩡하게 눕는 경우가 없다.)만약 방의 구조가 위의 그림처..
알고리즘 분류정렬구현문제 설명양의 정수를 원소로 갖는 길이가 N인 수열이 입력으로 주어졌을 때, 이 수열을 오름차순으로 정렬 했을 때 각각의 위치에 있던 원소가 어느 위치로 이동하는지 출력하는 코드를 작성해보세요.입력 설명첫째 줄에는 수열의 길이를 나타내는 양의 정수 N이 주어지고, 둘째 줄에는 N개의 양의 정수인 원소가 빈칸을 사이에 두고 주어집니다. 숫자가 중복되어 주어질 수 있습니다.1 ≤ N ≤ 1,0001 ≤ 수열의 원소 ≤ 1,000,00출력 설명이 수열을 정렬했을 때 각각의 위치에 있던 원소가 어느 위치로 이동하는지를 공백을 사이에 두고 출력하는 코드를 작성해보세요. 동일한 원소의 경우, 먼저 입력으로 주어진 원소가 더 앞으로 와야 합니다.예제 입력7 3 1 6 2 7 30 1예제 출력4 1..
mobitelmobitel알고리즘 분류구현문자열브루트포스 알고리즘정렬문제 설명알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다.먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다. 각각은 적어도 길이가 1 이상인 단어여야 한다. 이제 이렇게 나눈 세 개의 작은 단어들을 앞뒤를 뒤집고, 이를 다시 원래의 순서대로 합친다.예를 들어,단어 : arrested세 단어로 나누기 : ar / rest / ed각각 뒤집기 : ra / tser / de합치기 : ratserde단어가 주어지면, 이렇게 만들 수 있는 단어 중에서 사전순으로 가장 앞서는 단어를 출력하는 프로그램을 작성하시오.입력 설명첫째 줄에 영어 소문자로 된 단어..
99210알고리즘 분류수학브루트포스 알고리즘문제 설명어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 설명첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.출력 설명첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.예제 입력11012101000500예제 출력991105144119아이디어각 자리의 숫자가 등차수열을 이루는지 확인해야 한다.우선 1자리뿐인 1~9는 모두 한수이다.또한 10~99는 각 자리의 숫자가 모두 등차수열을 이루므로 10~99도 모두 한수이다.n은 ..
181-100011-1-12-20000000알고리즘 분류자료 구조우선순위 큐문제 설명절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.배열에 정수 x (x ≠ 0)를 넣는다.배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러 개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.입력 설명첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되..
알고리즘 분류정렬문자열문제 설명n개의 숫자가 주어졌을 때, 순서대로 숫자를 읽다가 홀수 번째의 원소가 주어질 때마다 지금까지 입력받은 값의 중앙값을 출력하는 프로그램을 작성해 보세요. 여기서 중앙값이란, 어떤 주어진 값들을 오름차순으로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다.입력 설명첫 번째 줄에는 숫자 n이 주어집니다.두 번째 줄에는 n개의 숫자가 공백을 사이에 두고 주어집니다.1 ≤ n ≤ 100, n은 홀수0 ≤ 주어지는 숫자 ≤ 100,000출력 설명n개의 숫자를 순서대로 읽으며 홀수 번째 수를 읽을 때 마다 지금까지 입력받은 값 중 중앙값을 차례대로 공백을 사이에 두고 출력합니다.예제 입력51 2 3 4 591 5 2 9 7 4 6 10 11예제 출력1 2 31 2 5 5 6아이디어n..
알고리즘 분류수학문제 설명n개의 수가 주어졌을 때 이 수들의 최소공배수를 구하는 프로그램을 작성해 보세요. 단, 재귀함수를 이용하여 문제를 해결해 주세요.입력 설명첫 번째 줄에 정수 n이 주어집니다.두 번째 줄에 n개의 수가 공백을 사이에 두고 주어집니다.1 ≤ n ≤ 101 ≤ 원소의 범위 ≤ 10출력 설명첫 번째 줄에 n개의 수들의 최소공배수를 출력합니다.예제 입력61 5 7 9 2 6예제 출력630아이디어최대공약수와 최소공배수를 구하는 함수를 만들고 모든 입력받은 값을 벡터에 저장하여 소모하면서 연속적으로 최소공배수를 구한다.알고리즘최대공약수는 유클리드 호제법을 이용하면 간단하게 구할 수 있다.유클리드 호제법에 따르면 a와 b의 최대 공약수는 b와 a% b의 최대 공약수와 같다.따라서 만약 b가 0..
알고리즘 분류문자문제 설명N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다.P1 IOIP2 IOIOIP3 IOIOIOIPN IOIOI...OI (O가 N개)I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오.입력 설명첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다.출력 설명S에 PN이 몇 군데 포함되어 있는지 출력한다.서브테스크번호배점제한150N ≤ 100, M ≤ 10 000.250추가적인 제약 조건이 없다.예제 입력113OOIOIOIOIIOIIOOIOIOIOIIOIIOOIOIOIOIIOIIOOIOIOIOIIOIIOOIOIOIOIIOII21..
알고리즘 분류다이나믹 프로그래밍문제 설명정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.1+1+1+11+1+21+2+12+1+12+21+33+1정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.입력 설명첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.출력 설명각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.예제 입력34710 예제 출력744274아이디어기존 숫자에서 맨 앞자리에 1이 더해지는가 2가 더해지는가 3이 더해지는가 이렇게 세 가지로 나눠서 점화식..
알고리즘 분류시뮬레이션문제 설명입력 설명첫 번째 줄에는 격자의 크기를 나타내는 n과 폭탄을 터뜨릴 횟수 m이 공백을 사이에 두고 주어집니다.두 번째 줄 부터는 n개의 줄에 걸쳐 각 행에 해당하는 n개의 숫자가 공백을 사이에 두고 주어집니다.그 다음 줄 부터는 m개의 줄에 걸쳐 폭탄을 터뜨릴 열의 위치 c가 순서대로 주어집니다. (1 ≤ c ≤ n)1 ≤ n ≤ 2001 ≤ m ≤ 10출력 설명m번에 걸쳐 폭탄이 터지고 중력이 작용한 것을 반복한 이후의 결과를 출력합니다.n개의 줄에 걸쳐 각 행에 해당하는 n개의 숫자를 공백을 사이에 두고 출력합니다. 만약 해당 위치에 아무 숫자도 적혀있지 않은 경우라면 0을 출력합니다.예제 입력4 41 1 2 33 2 2 33 1 6 24 5 4 42222 4 31 2 ..
알고리즘 분류시뮬레이션문자문제 설명길이가 n인 문자열 A가 주어졌을 때, 적절하게 특정 횟수만큼 오른쪽으로 shift하여, shift 된 이후의 문자열에 Run-Length Encoding을 진행했을 때의 길이가 최소가 되도록 하려고 합니다.Run-Length Encoding이란 간단한 비손실 압축 방식으로, 연속해서 나온 문자와 연속해서 나온 개수로 나타내는 방식입니다. 예를 들어, 문자열 A가 aaabbbbcaa인 경우 순서대로 a가 3번, b가 4번, c가 1번 그리고 a가 2번 나왔으므로 Run-Length Encoding을 적용하게 되면 a3b4c1a2이 되며 길이는 8이 됩니다.만약 문자열 A에 해당하는 aaabbbbcaa를 오른쪽으로 2번 shift를 하게 되면 aaaaabbbbc가 되며, ..
알고리즘 분류시뮬레이션문제 설명입력 설명첫 번째 줄에는 n과 m이 공백을 사이에 두고 주어지고, 두 번째 줄부터 (n+1)번째 줄까지는 각 행의 숫자가 공백을 사이에 두고 주어집니다.1 ≤ n, m ≤ 20-1,000 ≤ 정수 값 ≤ 1,000출력 설명모든 값이 양수로만 이루어져 있는 직사각형 중 최대 크기를 출력해주세요. 만약 그러한 직사각형이 없다면, -1을 출력해주세요.예제 입력3 3 1 2 3 3 4 5 6 7 8 4 5 6 -2 4 -3 1 3 6 7 -4 1 6 1 8 15 -5 3 -5 1 16 3예제 출력9 6아이디어x1 ~ x2, y1 ~ y2 범위의 직사각형을 모두 체크하여 가장 큰 직사각형의 크기를 출력한다.알고리즘x1 ~ x2, y1 ~ y2 범위의 직사각형의 내부 원소가 모두 양수..