파이썬 58

코드포스 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

코드포스 131A 풀이

a=input() a=[x for x in a] flag= True if a[0].islower() == True: for i in range(len(a)-1): if a[i+1].islower()==True: flag = False for j in range(len(a)-1): if flag: a[j+1]=a[j+1].lower() if flag: a[0]=a[0].upper() else: for i in range(len(a)-1): if a[i+1].islower()==True: flag=False for i in range(len(a)): if flag: a[i]=a[i].lower() print("".join(a)) 문제가 첫번째만 소문자고 나머지는 다 대문자일 경우와 전부 대문자일 경우만 수정..

코드포스 풀이 2022.01.31

코드포스 344A 풀이

import sys n=int(sys.stdin.readline().rstrip()) pre ='' cnt=1 cur=[] for i in range(n): cur.append(sys.stdin.readline().rstrip()) # if i==0: # continue # if cur[i]!=cur[i-1]: # cnt+=1 a="".join(cur) for i in range(0,len(cur)*2,2): if "00" in a[i:i+4] or "11" in a[i:i+4]: cnt+=1 print(cnt) 개인적으로 개삽질한 문제.. 문제는 쉬운데 최대 10만개의 input을 받을 수 있어서 시간초과를 내지 않으려면 반드시 sys로 인풋을 받아줘야한다. 위와 같이 sys를 import시키고 inp..

코드포스 풀이 2022.01.31

파이썬 문자열과 리스트의 차이

문자열과 리스트는 거의 동일하다고 볼 수도 있다. 하지만, 문자열은 인덱스에 따라 값을 수정할 수 없다는 차이점이 있다. 즉, a= "ABC"라고 할 때, a[1]="D"라고 하면 type오류가 발생한다. 따라서 a를 "ADC"와 같게 바꾸려면 다양한 방법이 있겠지만 List comprehension을 통해 리스트로 전환한후, 다시 합치는 방법이 있겠다. 리스트 컴프리헨션을 이용하면 a="ABC"에서 a= [x for x in a] 와 같이 바꿔줄 수 있고 a= ["A", "B", "C"]와 같이 바뀐다. 즉, 이제는 a[1]="D"와 같은 수정이 가능해진 것이다! 다시 a를 "ADC"로 만들려면 join함수를 이용해야 하는데 "".join(a)와 같이 하면 된다. ""는 원소 사이 공백을 의미한다.

python 2022.01.29

코드포스 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