코드포스 8

코드포스 230A 풀이

a,n = map(int, input().split()) arr=[] flag=True for _ in range(n): input_data=input().split() arr.append((int(input_data[0]),int(input_data[1]))) arr = sorted(arr,key=lambda b: b[0]) for i in range(len(arr)): if a>arr[i][0]: a+=arr[i][1] else: flag =False if flag: print("YES") else: print("NO") 사용자의 힘이 주어지고 드래곤의 힘보다 크면 보너스만큼 힘이 추가되고 드래곤의 힘보다 작으면 지는 게임이다. 드래곤의 힘과 보너스가 한 줄씩 주어지기 때문에 튜플 형태로 리스트에 a..

코드포스 풀이 2022.01.31

코드포스 136A 풀이

n = int(input()) arr = list(map(int, input().split())) field= [0]*105 a=[] for i,v in enumerate(arr): field[v]=i+1 for j in range(n): a.append(str(field[j+1])) print(" ".join(a)) 배열 [2 3 4 1]의 경우 인덱스를 역으로 참조하여 배열 [4 1 2 3]처럼 만드는 문제이다. 총 100개의 인덱스를 가질 수 있다고 문제에 언급돼 있으니, 넉넉히 105개짜리 field배열을 만들어준다. (역인덱스를 저장할 배열) 파이썬에는 enumerate기능이 있어 너무나 쉽게 i가 인덱스 v가 값이라면 v를 인덱스로, i를 값으로 하는 역참조를 할 수 있다. 단, 숫자들이 가리..

코드포스 풀이 2022.01.29

코드포스 1352A 풀이

t=int(input()) for _ in range(t): a=input() x=[] cnt=0 y=[] if len(a)==1 or len(a)==5: print(1) print(a) else: for i in reversed(range(len(a))): if a[i]!="0": x.append(a[i]) cnt+=1 y.append(cnt) else: cnt+=1 print(len(x)) for j in range(len(x)): print(int(x[j])*(10**(y[j]-1)), end=' ') print() 정수를 5309이라 하면 총 3개(5000, 300, 9)로 쪼개는 문제이다. 테스트 케이스 t에 따라 정수를 문자열로 우선 인풋 a로 받아준다. a는 10**4까지 임으로 a의 길이는..

코드포스 풀이 2022.01.29