BOJ
-
백준 파이썬 4673 셀프넘버BOJ 2020. 3. 21. 07:39
정말 아주아주 배울게 많은 문제다. 풀이 1 2 3 4 5 6 7 8 def self_number(): a = [] for i in range(1,10000): a.append(i + sum([int(j) for j in str(i)])) return set(range(1,10000)) - set(a) sf = self_number() for i in sorted(sf): print(i) cs 내가 직접 푼 풀이는 아니고 나도 여기저기 찾아보면서 참고했는데.. 진짜 배울게 많다 차집합을 구하기 위해서, list를 set으로 바꿔주는 작업을 했다는 것과 함수안에서 list를 만들어서 하나하나 append해줄 수 있다는 것.. 그리고 무엇보다 sum [ int(j) for j in str(i) ] 라는 표현..
-
백준 파이썬 2839 설탕 배달BOJ 2020. 3. 21. 03:38
내 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 import sys a = int(input()) b = 0 if a in [4,7]: print(-1) sys.exit(0) if a in [3,6,9,12]: print(a//3) sys.exit(0) if a == 11: print(3) sys.exit(0) if a == 14: print(4) sys.exit(0) while 1: b+=1 if 5*b>a: b = b-1 break if (a-5*b)%3 == 0: c = (a-5*b)//3 print(b+c) elif (a-5*b)%3 != 0: while ..
-
백준 파이썬 2309 일곱 난쟁이(random함수)BOJ 2020. 3. 21. 00:51
내 풀이 1 2 3 4 5 6 7 8 9 10 11 import random s = 0 h = [int(input()) for i in range(9)] l = [] while 1: l = random.sample(h,7) s = sum(l) if s == 100: break for i in range(7): print(sorted(l)[i]) cs random함수를 처음 써봤다. while안에서 random함수 계속 돌려서 될때까지 시도한다음 추출하는 방식. 유용하게 쓸듯.
-
백준 파이썬 2908 상수(slicing 적용)BOJ 2020. 3. 20. 22:25
참고 https://twpower.github.io/119-python-list-slicing-examples [Python] 파이썬 슬라이싱(slicing) 기본과 예제 Practice makes perfect! twpower.github.io a [ start : end : step ] ★ 고인물식 풀이 1 2 print(max(input()[::-1].split())) cs max('437','398') 해도 된다는거 처음암. max함수는 문자열로된 숫자도 받는다는걸;
-
백준 파이썬 10809 알파벳 찾기BOJ 2020. 3. 18. 04:19
내 풀이 1 2 3 4 5 6 r = [-1 for i in range(0,26)] apb = str('abcdefghijklmnopqrstuvwxyz') n = input() for i in range(0,26): r[i] = n.find('%s' %(apb[i])) print(*r) cs 너무 비효율적으로 뺑뺑 돌아서 풀었다. -1신경쓴다고 쓸데없이 배열을 하나 만든것 자체가 문제였음.. find 함수에서, 값이 존재하지 않으면 -1을 반환한다는 점에 착안해서 출제의도를 파악했어야 했는데 그걸 망각해서 이 사태를 불러일으켰다. 깔끔한 풀이 1 2 3 4 A = "abcdefghijklmnopqrstuvwxyz" S = input() for i in A: print(S.find(i), end=" ") ..