목록코딩테스트 (42)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 풀이 코드 a = list(map(int, input().split())) answer = [1, 2, 3, 4, 5] while True: for i in range(len(a)-1): if a[i] > a[i+1]: a[i], a[i+1] = a[i+1], a[i] print(" ".join(map(str, a))) if a == answer: break 코드 해석 버블정렬을 할용하여 간단히 풀이하였다.
문제 링크 https://www.acmicpc.net/problem/2605 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 www.acmicpc.net 풀이 코드 arr = [] n = int(input()) l = list(map(int,input().split())) for i in range(n): arr.insert(l[i],i+1) print(*arr[::-1]) 코드 해석 번호를 받은 뒤 리스트로 변환한다. 그리고 리스트의 번호의 자리에 순서대로 저장한다. 마지막으로 거꾸로 출력한다.
문제 링크 https://www.acmicpc.net/problem/6996 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(
문제 링크 https://www.acmicpc.net/problem/2526 2526번: 싸이클 두 자연수 N과 P를 가지고 다음 과정을 거쳐서 나오는 수를 차례대로 출력해보자. 처음 출력하는 수는 N이고, 두 번째 이후 출력하는 수는 N을 곱하고 P로 나눈 나머지를 구하는 과정을 반복하여 www.acmicpc.net 풀이 코드 n, p = map(int, input().split()) l = [] a = n while True: a = (a * n) % p if a in l: print(len(l) - l.index(a)) break l.append(a) 코드 해석 수를 받은 뒤 수를 저장할 리스트를 만들고 a라는 변수의 초기값을 n으로 설정한다. a 에 (a * n) % p 를 저장하고 만약 리스트 ..
문제 링크 https://www.acmicpc.net/problem/11170 11170번: 0의 개수 N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다. www.acmicpc.net 풀이 코드 t = int(input()) for i in range(t): cnt = 0 n, m = map(int, input().split()) for i in range(n, m+1): w = str(i) cnt += w.count('0') print(cnt) 코드 해석 수를 받은 뒤 하나씩 str로 만들고 0의 개수를 세어 cnt에 저장한 후 출력한다.
문제 링크 https://www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 풀이 코드 n = int(input()) seat = input() count = seat.count('LL') if (count
. 문제 링크 https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 풀이 코드 m = [500,100,50,10,5,1] p = 1000 - int(input()) cnt = 0 for i in m: if p >= i: while p >= i: p -= i cnt += 1 print(cnt) 코드 해석 잔돈 리스트를 만든다. p에 거스름돈을 입력한다. 그 후 잔돈으로 for문을 돌려 가장 적게 잔돈을 주도록 만든다.
문제 링크 https://www.acmicpc.net/problem/2846 2846번: 오르막길 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르 www.acmicpc.net 풀이 코드 n = int(input()) pi = list(map(int, input().split())) a = 0 re = [] for i in range(n-1): if pi[i] < pi[i+1]: a += pi[i+1] - pi[i] else: re.append(a) a = 0 re.append(a) print(max(re)) 코드 해석 리스트로 받아서 저장 한 뒤 반복하여 전 수랑 ..