분류 전체보기

코드 풀이 문제에서 입력예제로 숫자가 주어졌지만 각각의 성분을 나눠줘야 하기 때문에 문자열로 입력받는다. 왼쪽, 오른쪽 서로 다른 리스트에 추가해주고 합을 비교한다
https://www.acmicpc.net/problem/7523 7523번: Gauß 각 테스트 케이스마다 "Scenario #i:"를 출력한 다음, n부터 m까지 모든 정수의 합을 출력한다. 각 테스트 케이스 사이에는 빈 줄을 하나 출력한다. www.acmicpc.net 문제 코드 풀이 단순 수학문제이다. 그러나 문제의 조건인 "각 테스트 케이스 사이에는 빈 줄을 하나 출력한다."를 유심히 보지 않으면 출력 형식이 잘못되었다고 하니 줄바꿈을 잘 해줘야 겠다.
문제 코드 arr = [list(input()) for _ in range(5)] l=[] for i in range(5): l.append(len(arr[i])) for i in range(5): if max(l)>l[i]: for j in range(max(l)-l[i]): arr[i].append('&') t='' for i in range(max(l)): for j in range(5): if arr[j][i]!='&': t+=arr[j][i] print(t) 풀이 2차원 리스트를 이용하여 입력받았다. 가장 긴 단어에 맞춰서 덜한단어들은 '&'을 채워줬다. 만약 '&'이 나오면 읽지않고 넘어가고 나머지는 t에 저장한다. 마지막에 t 출력
https://www.acmicpc.net/problem/20956 20956번: 아이스크림 도둑 지호 지호는 매일 아이스크림 가게에 방문한다. 아이스크림을 먹던 지호는 놀라 자빠질 수밖에 없었다. 실수로 민트초코 맛을 먹었기 때문이다. 대다수의 사람은 치약 맛이 난다는 이유로 민트초코 www.acmicpc.net 0. 잡설 deque에 배열을 선언할 수 있다는 사실을 간과하고 Priority queue로 풀려다가 많은 '틀렸습니다' 를 받았습니다. 풀었던 방법을 오래 기억하고 싶어 기록합니다! 지호가 민초를 먹고 배열을 어떻게 돌리던간에, 가장 양이 많은 아이스크림을 먹는다는 점은 바뀌지 않습니다. 그래서 Priority Queue의 top과 같은 원소를 배열에서 앞뒤로 찾으려고 했는데요, 45%쯤에서..
문제 https://www.acmicpc.net/problem/19591 Algorithm 1. 문자열을 파싱해 수와 연산자를 분리한다. 수는 vector에 push하고 연산할 수의 위치를 나타내는 변수left , right도 선언한다. 연산자는 맨 앞 혹은 맨 뒤의 것이 수행되므로, deque에 push한다. 2. 문제의 조건에 따라 연산을 진행한다. 앞의 연산자가 수행될 경우 vector[left]와 vector[left+1]를 연산하고, 뒤의 연산자가 수행될 경우 vector[right-1]와 vector[right] 연산한다. 연산 결과는 각각 vector[left+1]과 vector[right-1]에 담긴다. - 문자열은 어떻게 파싱하는가? 1. 문자열을 순회하며 첫 번째 연산자를 제외하고, 연..
문제 링크 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 문제 설명 사용자가 입력한 1부터 n까지의 수열이 있다. 스택 내에서 push와 pop으로 넣었다 뺏다 하면서 그 수열과 같게 만들어야 한다. 만약 수열이 안 만들어지면 NO를 출력한다. 코드 #include #include #include #include #include #include using namespace std; int main() { ios_base:..
https://www.acmicpc.net/problem/1718 1718번: 암호 Vigenere cipher이라는 암호화 방법은 암호화하려는 문장 (평문)의 단어와 암호화 키를 숫자로 바꾼 다음, 평문의 단어에 해당하는 숫자에 암호 키에 해당하는 숫자를 더하는 방식이다. 이 방법을 변 www.acmicpc.net 문제 소스코드 문제풀이 암호화 키가 암호 문자보다 짧으면 안되고, 너무 길게 잡지 않기 위해 사칙연산과 ceil()을 이용해 길이를 조절해주었다. a보다 이전이라 z로 돌아가는 경우와 그렇지 않은 경우 두 경우로 나누어 return 해주는 함수를 만들어 주었다 for문에서는 띄어쓰기가 아닌 경우를 구분해주고, 리스트에 추가한 후 joion을 이용해 출력해주었다
문제 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 소스코드 arr = [] for i in range(9): arr.append(list(map(int, input().split(' ')))) m = 0 idx = 0 for i in range(9): for j in range(9): if m
https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 문제 소스코드 문제풀이 이 문제는 리스트와 pop(),append()를 이용해 풀었다. 문자열을 순회할 때 첫 문자는 무조건 리스트에 넣고, 그 이후는 리스트의 마지막 문자와 비교하여 같으면 pop() 아니면 append() 하여 반복문이 끝났을 때 리스트가 비어있으면 ans+=1 해주었다.
https://www.acmicpc.net/problem/12759 12759번: 틱! 택! 토! 승자가 결정되는 즉시 이긴 플레이어의 번호를 출력한다. 플레이어의 번호는 1 또는 2이다. 무승부라면 0을 출력한다. www.acmicpc.net 문제 소스코드 문제풀이 선공할 번호만 입력을 받기 때문에 후공 변수는 선공 번호 입력에 따라 따로 받아주었다. player가 체크할 때마다 리스트에 추가해주어 리스트를 완성시키고, 매겨변수로 player와 리스트를 받아 승리패턴이 나오면 player 번호를 리턴, 승리패턴이 나오진 않으면 0 리턴을 하는 함수를 만들어주었다. 함수의 리턴값을 flag 변수에 받아 0이 아니라면 flag를 출력하고 res변수에 flag값을 넣고 반복문이 끝난 후, res가 0이라면 ..
어떤 것을 pop 할지를 잘못 생각해서 삽질한 문제 스택에서 없애야 할 것 건물이 더 이상 확장할 수 없는 경우, pop 한다. 입력으로 들어온 Y가 스택의 상단 T보다 작다면, (Y < stack().top()) 높이 T를 가지는 건물의 범위는 거기서 끝나기 때문에, 더 이상 스택에 있을 필요가 없어진다. 스택에 넣지 말아야 할 상황 건물의 영역이 이어지는 경우, 스택에 push 하지 않는다. (Y == stack.top()) 입력으로 들어온 Y가 스택의 상단 T와 같다면 스택에 넣지 않는다. 고층 건물에 대한 정보가 삭제된 후, 바뀐 스택의 상단 T가 N과 높이가 같다면, 높이 N의 건물이 계속되는 형태기 때문에, 따로 카운팅을 할 필요가 없어진다. 스택에 넣어야 하는 상황 스택이 비어있을 때와, 입..
2828번: 사과 담기 게임 (acmicpc.net) 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M
KauKoala
'분류 전체보기' 카테고리의 글 목록 (86 Page)