문제 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다. 동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다. 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 세 번째 조각의 수가 네 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 네 번째 조각의 수가 다섯 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1 단계로 다시 간다. 처음 조각의 순서가 주어졌을 때, 위치를 바꿀 때 마다 조각의 순서를 출력하는 프로그..
Koala - 7기/기초 알고리즘 스터디
https://www.acmicpc.net/problem/1673 1673번: 치킨 쿠폰 강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환 www.acmicpc.net 치킨 한 마리당 도장을 한 개 찍어주고, 도장을 여러 개(입력1) 모으면 치킨 쿠폰 한 장을 준다. 그 쿠폰으로 치킨 한 마리를 시켜 먹을 수 있다. 그렇다면 주어진 쿠폰(입력2)으로 몇 마리의 치킨을 시켜먹을 수 있는지 구하는 문제이다. 쿠폰으로 시켜먹은 치킨도 도장을 찍어준다는 점에 유의해야 한다. 반복이 얼마나 도는지 나와있지 않은 EOF문제이다. 처음에 EOFError 설정을 해주도록 한다..
https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 문제분석 풀이코드
1874번: 스택 수열 (acmicpc.net) 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 소스코드 문제풀이 문제를 이해하는 데 많은 시간이 걸렸다. 숫자를 하나씩 입력받으면서 스택에 넣고 미리 오름차순으로 만들어놓은 벡터의 값과 같으면 꺼낸다. 마지막 숫자가 꺼내지면 벡터에 있는 값과 같아야한다. 만약 다르다면 만들 수 없는 수열이다. 개인적으로 이번 주차에서 가장 어려운 문제였다.
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 소스 코드 문제 풀이 key(책이름),value(빈도수) 딕셔너리를 이용하였다. 우선 책이름을 입력받아 딕셔너리에 없는 값이면 추가, 딕셔너리에 이미 있는 값이면 빈도수 + 1을 해주었다. 그 후 최대값을 가진 책이름만 따로 뽑아 리스트를 만들었고, 그 리스트를 정렬한 후 맨 앞의 값을 출력하였다.
소스코드 T = int(input()) for i in range(T): n, word = input().split() n = int(n) print(word[:n-1], word[n:], sep='') 문제 분석 처음에는 문자열을 리스트화 시킨 후 해당 부분을 제거하고 for과 end=''을 활용해 리스트 요소를 이어서 출력시키려고 했는데 이렇게 하는 것 보다 그냥 해당 부분 제외한 리스트를 이어붙히는 게 더 빠를 거라 생각해서 print(word[:n-1], word[n:], sep='')를 활용해서 출력했습니다.
https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 문제설명 첫째 줄에 같지 않은 세 자리 수 A,B가 주어지고, 수를 거꾸로 읽은 다음 큰 수를 출력한다. 문제 분석 A와 B를 입력받고 reversed로 수를 거꾸로 돌린다음 돌린 수를 비교하여 출력한다.
7785번: 회사에 있는 사람 (acmicpc.net) 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 소스 코드 n=int(input()) d={} for i in range(n): a,b=input().split() if b=="enter": flag=True if b=="leave": flag=False d[a]=flag c=list(d.keys()) c.sort(reverse=True) for i in range(len(c)): if d[c[i]]==True: p..
문제 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, 학생들의 이유가 모두 달랐기 때문에 정확한 이유를 찾을 수 없었다. 정부의 고위직은 뛰어난 학생들이 자꾸 유학을 가는 현상을 매우 불쾌해 했다. 가장 많은 학생들이 유학을 가는 대학교는 영국의 캠브리지 대학교이다. 정부는 인터넷 검열을 통해서 해외로 나가는 이메일의 내용 중 일부를 삭제하기로 했다. 이메일의 각 단어 중에서 CAMBRIDGE에 포함된 알파벳은 모두 지우기로 했다. 즉, 어떤 이메일에 LOVA란 단어가 있다면, A는 CAMBRIDGE에 포함된 알파벳이기 때문에, 받아보는 사람은 LOV로 받는다. 이..
https://www.acmicpc.net/problem/9325 9325번: 얼마? 해빈이는 학교를 다니면서 틈틈히 번 돈으로 자동차를 사려고 한다. 자동차에 여러 가지 옵션을 포함시킬 수 있는데 해빈이는 덧셈과 곱셈을 하지 못하기 때문에 친구 태완이에게 도움을 청했 www.acmicpc.net 소스코드 문제풀이 a로 테스트 케이스의 수를 입력받고 테스트 케이스 수 만큼 반복한다. s, n에 각각 자동차의 가격과 옵션의 개수를 입력받고, total 변수를 생성하여 s값을 저장한다. n만큼 반복하며 p, q를 split()을 이용하여 띄어쓰기 단위로 입력받고 total에 p*q만큼 더한 후 total 값을 출력한다.
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 예제 입력 1 복사 2 1 5 예제 출력 1 복사 4 예제 입력 2 복사 5 1 6 예제 출력 2 복사 2 예제 입력 3 복사 100 99 1000000000 예제 출력 3 복사 99999990..