문제 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 정답 소스코드 (Python) n,new,p=map(int,input().split()) if n==0:print(1) else: grade=list(map(int,input().split())) for i in range(len(grade),p):grade.append(-1) p_in=False rank=[1] for i in range(1,p): if grade[i]==grade[i-1]:rank.append(rank[i-1..
예외처리
문제 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 정답 소스코드 (Python) from collections import deque n,m=map(int,input().split()) field=[] visited=[[False for j in range(m)]for i in range(n)] arr=[[-1 for j in range(m)]for i in range(n)] for i in range(n): tmp=list(map(int,input().split..
문제 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 풀이 (Python) n=int(input()) for i in range(1,n+2): tmp,tmp_sum=str(i),0 for j in range(len(tmp)):tmp_sum+=int(tmp[j]) #각 자리수 더하기 tmp_sum+=i #입력받은 숫자를 더하기 if tmp_sum==n:break #생성자인 경우 if i>n:print(0) #생성자가 없는 경우 예외처리 else:print(i) 설명 (Python) ..
문제 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 풀이 (Python) N=int(input()) share=N//5 min_number=N kg5_count,kg3_count=0,0 for i in range(share,-1,-1): if (N-5*i)%3==0: kg5_count=i kg3_count=(N-5*i)//3 if min_number>kg5_count+kg3_count and(kg5_count>0 or kg3_count>0): min_number=kg5_count+kg3_count if kg5_coun..
문제 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 풀이 (Python) n=int(input()) arr=list(input()) def check(): #전체 원소가 같은 색깔인지 점검하는 함수 for i in range(1,len(arr)): if arr[i-1]!=arr[i]: return False return True def paint_count(): arr_B,arr_R,result=0,0,0 if len(arr)==1 or check(): #예외처리 arr가 1개만 입력되거나 전체 원소가 같은..
문제 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 풀이 (Python) arr=list(input()) def poli(): count=0 for i in range(len(arr)): #x의 개수가 4개 연속으로 있다면 A로 대체하기 위한 for문 if arr[i]=="X": count+=1 else: count=0 if count==4: for j in range(4): arr[i-j]="A" count=0 count=0 for i in range(len(arr)): #x의 개수가 3개가 남아있는 case가 있다면 false리턴을 위한 for문 if arr[i]=="X": count+=1 else: cou..