본문 바로가기

알고리즘 문제풀이/요약 정리7

[파이썬 에러] ValueError: invalid literal for int() with base 10: 문제 코드 dp = [set([int(str(n)*i)]) for i in range(9)] # 0~8 까지의 dp print(dp) ValueError: invalid literal for int() with base 10: '' 뒤에 ''가 빈 문자열을 넣어서, int() 화 할 수 없다는 뜻이다. for i in range(9) 이기 때문에 0번 곱해질 경우 빈 문자열이 되어 int() 할 수 없었던 오류다. 수정 코드 dp = [set([int(str(n)*i)]) if i>0 else set() for i in range(9)] # 0~8 까지의 dp 2023. 12. 1.
문법 정리 입력 빠르게 받기 : 1) 줄바꿈 문자까지 import sys a = sys.stdin.readline() 2) 줄바꿈 문자는 제외하고 싶을 때 import sys a = sys.stdin.readline().rstrip() print(a) print문 % print('Case #%d:' %(i+1), str(a+b)) 문자열 포맷 (문자 앞에 0채우기) - 딕셔너리 키 기준 정렬 : 우선 sorted() 한 후, 딕셔너리가 리스트로 정렬되어 반환된 것을 다시 딕셔너리로 - print('{0:02d}'.format(s)+'-'+'{0:02d}'.format(e)) : 숫자 자릿수 달라질 때 0채워 반환하기 - f'Room {변수}' 과 같이 표현할 수도 있다. - f'{x[0]:02d}-{x[1]}' :.. 2023. 11. 1.
딕셔너리, 힙 딕셔너리 안에 딕셔너리 선언도 가능하구나. 딕셔너리 지우기 : del, pop 딕셔너리 지우기 : del, pop dict.items() 로 enumerate()처럼 key, value 받아올 수 있다. key in dict 로 확인할 수 있구나 .most_common() 딕셔너리 정렬: 더보기 https://gomgomkim.tistory.com/26 더보기 출처: https://www.daleseo.com/python-heapq/ 파이썬의 heapq 모듈로 힙 자료구조 사용하기 Engineering Blog by Dale Seo www.daleseo.com 2023. 9. 29.
[Python] 요약 정리 ✅ 출력형식 %(a, b, c) 와 같이 표현하는 것 기억! a, b = map(int, input().strip().split(' ')) print("%d + %d = %d" %(a, b, a+b)) ✅ '구분자'.join(리스트) 리스트의 구성 원소들을 구분자를 이용하여 열거해서 하나의 문자열로 합쳐준다. ✅ divmod() 내장 함수 결과로 (몫, 나머지) 값을 갖는 튜플을 반환한다. divmod(x, y) = (x // y, x % y) ✅ 리스트 안의 모든 값에 특정 함수를 적용시키려고 할 때 = map ! * 내 코드 def solution(strlist): answer = [] for x in strlist: answer.append(len(x)) return answer * 깔끔한 참고 코.. 2023. 5. 11.
코테준비 [인프런] 파이썬 알고리즘 문제풀이 2023. 5. 9.
[1분 요약] 백트래킹(Backtracking)이란? 백트래킹 이란? 해를 찾아가는 도중, 현재의 경로는 해가 될 수 없는 경우 그 경로를 더 이상 가지 않고 되돌아가는 기법을 말한다. DFS 알고리즘에서, 절대 불가능한 경우에 대해 조건문을 걸어 탐색을 중지하고 되돌아가는 경우가 대표적인 예이다. 불필요한 경로를 차단한다는 의미에서, '가지치기'라는 용어를 쓰기도 한다. 때문에 찾아가야할 경우의 수를 줄일 수 있으므로, 백트래킹 기법을 이용해 시간 단축을 노려볼 수 있다. * 핵심 표현 해가 될 가능성이 있는 경우, '유망하다(promising)' 라고 표현하고, 해가 될 가능성이 없는 경우에 그 경로를 가지 않게 하는 행위에 대해서는 '가지치기(pruning)'한다고 표현한다. 2022. 7. 27.
[1분 요약] 브루트 포스 알고리즘이란? Brute : 난폭한 Force : 힘 말 그대로 난폭한(=무식한) 힘으로 밀어붙이는 알고리즘을 의미한다. 방정식 문제를 풀 때 해를 찾기 위해 0부터 999까지 대입해본다면 브루트 포스 알고리즘을 적용했다고 볼 수 있다. 실생활에서도 핸드폰 비밀번호를 찾기 위해 0000부터 9999까지 직접 입력해 볼 수 있을 것이다. 이렇게 모든 경우의 수를 직접 확인하는 경우는 모두 브루트 포스 알고리즘에 속한다고 볼 수 있다. 그 중에서도 선형 구조를 완전 탐색하는 경우 '순차 탐색' 비선형 구조를 완전 탐색하는 경우'DFS(깊이 우선 탐색)', 'BFS(너비 우선 탐색)' 등의 방법이 있다. 2022. 7. 20.