본문 바로가기

Python_파이썬설명서/백준with파이썬

(4)
백준 1181- 단어정렬 (딕셔너리 사용법과 sorted의 lambda 람다) 딕셔너리를 정의하는 방법에는 다음과 같은 방법들이 있다. dict_ex1과 같이 정석적인 방법, dict_ex2와 dict_ex3와 같이 한쌍의 키와 벨류로 이루어진 튜플을 구성하여 dict으로 바꾸는 방법. 백준을 좀 하다보니 이제와서야 딕셔너리가 문제 풀이에 효과적임을 깨닫고 있다;; 다음은 딕셔너리를 이용해 1181번을 해결한 코드이다. # 백준 1181(내거) import sys N=int(input()) li=[] for _ in range(N): li.append(sys.stdin.readline().rstrip()) li=list(set(li)) li_dic=sorted(li) leng=len(li) li_new={li_dic[i]:len(li_dic[i])*leng+i for i in ra..
백준 11729풀이와 해설 - 하노이탑 쌓기 def cnt(N): #몇번 옮기는지 세어주는 함수 N_time=1 for i in range(1,N): N_time=N_time*2+1 print(N_time) def move(N,start,fin): #어떤 순서로 탑에서 탑으로 이동하는지 나타내주는 함수 wait= list({1,2,3}-{start}-{fin})[0] #1,2,3중에 start와 fin빼고 남는거 if N>=2: move(N-1,start,wait) print("{0} {1}".format(start,fin)) move(N-1,wait,fin) if N==1: print("{0} {1}".format(start,fin)) disk_num=int(input()) cnt(disk_num) #몇번 움직이는지 먼저 출력 move(disk_..
python에서 ctrl+6 (^)처럼 제곱 표현하기 백준에서 두 원의 교점을 찾는 코딩을 간만에 하다가 ((x1-x2)^2+(y1-y2)^2)==(r1+r2)^2 과 같이 써서 표현하니 True가 반환되야할 지점에서 자꾸 False가 나와서 봤더니 ((x1-x2)**2+(y1-y2)**2)==(r1+r2)**2 아맞다 아래식처럼 python에서 제곱근은 ^이 아니라 **이라고 쓰는걸 깜박하고 있었다;; 오늘도 뻘짓 적립
Python 중괄호와 소괄호의 차이 대부분의 프로그래밍 언어에서 그렇겠지만 python에서 중괄호 [] 와 소괄호 ()는 혼동해서 쓰면 안되는 완전히 다른 것이다. 주로 중괄호는 배열 (array)를 구성할 때, 또한 배열의 특정 인덱스에 접근할 때 등등 이용하고 소괄호는 연산의 순서를 정해주고 싶을때, 개체의 메소드와 속성을 이용할 때 등등 사용하게 된다. 나도 아직 익숙하지도 않은지라 두 개를 자꾸 혼동해서 쓰곤 하는데 당신은 다음의 혼동을 쉽게 피할 수 있을 것이다. if False == False: print("True") #결과는 True. 위의 if문을 boolean 판정문으로 사용해서 False == False 값을 받아보면 당연히 True가 나온다. if 0 in [1,2,3]: print("True") else: print..