분류 전체보기

https://www.acmicpc.net/problem/5598 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 문제 해결 문자열을 받고 3칸씩 건너뛰어 출력해주는 문제이다. 코드 #include #include using namespace std; int main(void) { string str; cin >> str; for (int i = 0; i < str.size(); i++) { str[i] -= 3; if (str[i] < 'A') str[i] += ..
https://www.acmicpc.net/problem/17390 17390번: 이건 꼭 풀어야 해! [2, 5, 1, 2, 3]을 비내림차순으로 정렬하면 [1, 2, 2, 3, 5]이다. www.acmicpc.net 문제분석 수열을 입력받고 이를 비 내림차순으로 정렬해서 수열을 만든다. 그런 다음 정수를 두 개 입력받는다. 수열에서 입력받은 정수 인덱스에 해당하는 값들의 누적 합을 구해서 출력하면 된다. 코드 from itertools import accumulate input = __import__('sys').stdin.readline n, q = map(int, input().split()) a = sorted([*map(int, input().split())]) p_sum = list(accu..
문제해석 첫번째 줄에 심사위원의 수, 두번째 줄에 각 심사위원이 누구에게 투표했는지를 입력받고 A와 B 중 누가 더 표를 많이 받았는 지를 출력한다. 코드 문제풀이 V를 input을 통해 입력받는다. 그리고 각 심사위원이 누구에게 투표했는지를 리스트에 입력받는다. a, b 를 통해 A와 B가 각각 얼마나 표를 얻었는 지를 저장한다. for문을 통해 리스트에 저장된 표를 통해 a, b 값을 얻는다. 그 후 a, b를 비교하여 누가 더 많이 받았는 지를 판별한다.
4072번: Words (acmicpc.net) 4072번: Words Input will consist of a number of lines, each containing up to 250 characters. Words will be separated by single spaces, i.e. not by tabs, double spaces or other characters. Words may be of any length. Input will be terminated by a line containing a single www.acmicpc.net 문제 해석 문자열이 입력되면 각 단어별로 reverse해서 출력하는 것이다. #을 입력하면 종료한다. 코드 문제 풀이 문자열은 arr라는 list에 각 ..
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 해석 이 문제는 바이러스인 2가 상하좌우로 퍼지는데 이를 벽 3개를 생성하여 가장 많은 안전 영역의 크기를 구하는 문제이다. 코드 from collections import deque input = __import__('sys').stdin.readline # Input n, m = map(int, input().split()) arr = [] makeWall = [] for _ in range(n): ..
https://www.acmicpc.net/problem/14267 14267번: 회사 문화 1 영선회사에는 매우 좋은 문화가 있는데, 바로 상사가 직속 부하를 칭찬하면 그 부하가 부하의 직속 부하를 연쇄적으로 칭찬하는 내리 칭찬이 있다. 즉, 상사가 한 직속 부하를 칭찬하면 그 부하 www.acmicpc.net 문제분석 분류 DP, 그래프, 트리, bfs-dfs, 트리에서의 DP 문제 설명 영선회사에는 매우 좋은 문화가 있는데, 바로 상사가 직속 부하를 칭찬하면 그 부하가 부하의 직속 부하를 연쇄적으로 칭찬하는 내리 칭찬이 있다. 즉, 상사가 한 직속 부하를 칭찬하면 그 부하의 모든 부하들이 칭찬을 받는다. 모든 칭찬에는 칭찬의 정도를 의미하는 수치가 있는데, 이 수치 또한 부하들에게 똑같이 칭찬 받는..
2999번: 비밀 이메일 (acmicpc.net) 2999번: 비밀 이메일 정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과 www.acmicpc.net 문제 해석 정인이의 암호 이메일을 해독하는 프로그램 만들기 코드 문제 풀이 문자열을 입력받을 공간과 길이를 입력한다. 행의 길이와 열의 길이를 선언하고, 약수가 짝수개이면 행과 열에 따라 구분되게 하고 약수가 홀수개이면 가운데 약수로 통일한다. 받은 문자열을 해독하기 위해 2차원 r행 c열을 선언한다. 입력받은 문자열 S의 문자 차례대로 하나씩 r행 c열에 삽입한다. ..
https://velog.io/@jay6768/BOJ-Python-1874-스택-수열 Intro 스택을 만들어서 수를 저장하고, 그 스택에서 수를 뽑아내어 주어진 오름차순 수열을 만드는 문제이다. 못 만들면 "NO"를 출력한다. 처음에 문제를 이해하는데 시간이 정말 오래 걸렸다. 스택을 이용해 수열을 만든다는 게 무슨 뜻인지, push와 pop 연산을 언제 수행해야 하는지 한참 고민한 끝에 답을 찾았다. Solution 문제에서 1부터 n까지의 수를 스택에 넣는다고 했다. 그러므로 반복문을 돌며 스택에 수를 1씩 추가한다. 또한 주어진 수열과 같은 수열을 만들어야 하므로, 주어진 수열의 0번째 수와 만들어놓은 스택의 마지막 수를 비교하며 연산을 선택한다. 이때 한 번이라도 주어진 수열의 0번째 수가 스택..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 해석 최소 힙, 최대 힙 과 비슷한 문제로 힙을 사용하는 문제이다. 입력으로 정수를 입력받고, 이를 배열에 넣는다. 만약 입력된 수가 0이라면 배열에서 가장 작은 절대값을 가진 수를 출력한다. 만약 배열에 수가 존재하지 않으면 0을 출력한다. 코드 import heapq input = __import__('sys').stdin.readline n = int(input()..
https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net A와B를 오름차순으로 정렬해 A와B를 하나씩 비교했다 A가 B보다 작아질때 까지만 count에 1씩 더해나간다 작아지게 되면 남은 B들은 A보다 모두 크므로 더이상 생각할 필요가 없다
18406번: 럭키 스트레이트 (acmicpc.net) 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 문제 해석 짝수 자릿수의 수가 주어지면 윗 자릿수 반의 수끼리 더한 값과 아래 자릿수 반의 수끼리 더한 값을 비교하여 같으면 LUCKY를 출력, 같지않으면 READY를 출력한다. 코드 문제 풀이 먼저 N을 받을때 integer가 아닌 문자열로 받고 더할 때마다 integer로 변환시켜주는 방법을 이용했다. integer로 받는다면 각 자릿수를 더하기가 더 어렵기 때문이다. 그 후, 중간 자릿수를 전체 길이에 2를 나눠 알아낸 후 for문을 이용해 윗 자릿수와 ..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제분석 정수를 입력 받고 이를 배열에 저장받은 다음 0을 입력 받았을 때, 배열에서 절댓값이 가장 작은 값을 pop 하면 되는 문제이다. 단, 0을 입력받았을 때, 배열에 아무것도 없을 경우에는 그냥 0을 출력해야 한다. 입력 되는 정수는 절댓값이 2^31보다 보다 작으며 N은 1보다 크고 100000보다 작은 자연수이다. 또한, 절댓값이 같은 경우 더 작은 값을 출력한다...
KauKoala
'분류 전체보기' 카테고리의 글 목록 (109 Page)