본문 바로가기

반응형

Python 코딩테스트

(65)
구현: 백준 1110 파이썬(Python) 문제: https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 풀이: n = int(input()) def cycle_sum(n): num = [] num.append(n//10) num.append(n % 10) sum = num[0] + num[1] cycle = (num[1]*10) + (sum % 10) return cycle temp = cycle_sum(n) count = 1 while(1): if(temp == n): bre..
구현: 백준 10820 파이썬(Python) 문제: https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 풀이: string = [] while True: try: string = input() except: break low, upp, num, space = 0, 0, 0, 0 for i in string: if (i.islower()): low += 1 elif(i.isupper()): upp += 1 elif(i.isdigit()): num += 1 elif(i == " "): spa..
구현: 아이디어를 코드로 바꾸는 구현 코딩 테스트에서 구현(implementation)이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'이다. 어떤 문제를 풀든 간에 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다. 그런 의미에서 알고리즘 교재에서는 대부분 구현을 별도의 유형으로 다루지 않지만, 취업을 목표로 하는 코딩 테스트에서는 구현이 중심이 되는 문제가 자주 출제되기에 다른 알고리즘을 배우기 전에 먼저 다루고자 한다. 이 책에서는 완전 탐색, 시뮬레이션 유형을 모두 '구현' 유형으로 묶어서 다루고 있다. 완전 탐색은 모든 경우의 수를 주저 없이 다 계산하는 해결 방법을 의미하고, 시뮬레이션은 문제에서 제시한 알고리즘을 한 단계식 차례대로 직접 수행해야 하는 문제 유형을..
그리디: 백준 2828 파이썬 문제: https://www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M= apple[i] and start apple[i]): move += start - apple[i] start = apple[i] end = apple[i] + (M - 1) print(move)
그리디: 백준 15881 파이썬 문제: https://www.acmicpc.net/problem/15881 15881번: Pen Pineapple Apple Pen 여러 개의 사과, 파인애플, 그리고 펜이 일렬로 세워져 있다. 이 물건들의 순서를 바꾸지 않고 옆에 있는 물건끼리 연결했을 때, 펜-파인애플-애플-펜을 몇 개나 만들 수 있을지 세어보자. 단, 펜, www.acmicpc.net 풀이: n = int(input()) arr = list(input()) arr.extend([0] * 1000000) i, cnt = 0, 0 while(i < n): if(arr[i] == 'p' and arr[i+1] == 'P' and arr[i+2] == 'A' and arr[i+3] == 'p'): arr[i+3] = 0 cnt += 1 i..
그리디: 백준 1434 파이썬 문제: https://www.acmicpc.net/problem/1434 1434번: 책 정리 첫째 줄에 박스의 개수 N, 책의 개수 M이 주어진다. 둘째 줄에는 박스의 용량 A1, A2, ..., AN이 주어지고, 셋째 줄에는 B1, B2, ..., BM이 주어진다. www.acmicpc.net 풀이: N, M = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.extend([0] * 1000) B.extend([1001] * 1000) result = 0 i = 0 j = 0 while(i = B[j]: A[i] = A[i] - B[j] j += 1 continue pri..
그리디: 백준 18238 파이썬 문제: https://www.acmicpc.net/problem/18238 18238번: ZOAC 2 2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해 www.acmicpc.net 해설: 아스키코드 값을 이용해서 문제를 풀었다. 왼쪽/오른쪽으로 원판을 돌리는 경우를 모두 생각해서 그중에 작은 수를 계속해서 더 한다. A ~ Z를 리스트에 모두 추가하여 구할 수도 있다. 반성: 내가 어려움을 겪었던 점은 정방향이 아닌 역방향으로 갈 때 어떻게 처리를 해야 하는지에 대한 부분이다. 고민을 하다가 결국 구글링을 해보았고 해결 방법은 음수가 될 경우, 26을..
그리디: 백준 11034 파이썬 캥거루 세마리2 ( https://www.acmicpc.net/problem/11034 ) 답: 헷갈렸던 부분은, 주어진 입력이 여러개의 테스트 케이스로 이루어져 있다는 것이었다. 예제 처럼 좌표를 총 두 세트씩 입력하게 하니까 틀렸다고 나왔다. 그래서 구글링을 참고해 try, except문을 사용했다. 여러개의 테스트 케이스가 입력으로 주어지면 try, except문 사용을 기억하자.

반응형