본문 바로가기
반응형

분류 전체보기103

[백준] 1568번 : 새 유형 : 탐색 [예제] 14 [출력] 1 1. 내 풀이 N = int(input()) cnt = 0 k = 1 while True: if N n: k = 1 n-=k k += 1 .. 2022. 1. 3.
[백준] 1543번 : 문서 검색 유형 : 정렬 [예제1] ababababa aba [출력1] 2 [예제2] a a a a a a a [출력2] 2 1. 내 풀이 text = input() word = input() print(text.count(word)) ▷ count()로 전체 문서 중 원하는 단어가 몇 개인지 셀 수 있었다. 2. 다른 풀이 출처 : 패스트캠퍼스 - 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online ** 핵심 아이디어 1. 문서의 길이는 최대 2500이고 단어의 길이는 최대 50이다. 2. 단순히 모든 경우의 수를 계산하여 문제를 해결할 수 있다. 3. 시간 복잡도 O(NM)의 알고리즘으로 해결할 수 있다. - 문서, 단어 길이가 크지 않기 때문에 모든 경우를 파악해도 충분하다. ex. 문서 : ababa.. 2022. 1. 3.
[백준] 11004번 : K번째 수 유형 : 정렬 [예제] 5 2 4 1 2 3 5 [출력] 2 1. 내 풀이 import sys N, K = map(int, sys.stdin.readline().split()) _list = list(map(int, sys.stdin.readline().split())) print(sorted(_list)[K-1]) ▷ sys.stdin.readline()을 이용해 소요되는 시간을 줄였다. ▷ sys.stdin.readline()에 대해 참고한 블로그 : [Python 문법] 파이썬 입력 받기(sys.stdin.readline) ▷ 아래 그림을 보면 PyPy3과 Python3에서 실행한 시간을 알 수 있다. 2. 다른 풀이 출처 : 패스트캠퍼스 - 알고리즘 / 기술면접 완전 정복 올인원 패키지 Onlin.. 2022. 1. 3.
[백준] 2751번 : 수 정렬하기 2 유형 : 정렬 [예제] 5 5 4 3 2 1 [출력] 1 2 3 4 5 1. 내 풀이 import sys N = int(sys.stdin.readline()) _list = [] for _ in range(N): _list.append(int(sys.stdin.readline())) _list.sort() for data in _list: print(data) ▷ 기본 정렬 라이브러리(sort())를 이용해 쉽게 구할 수 있었다. ▷ input()을 쓰면 시간초과가 나오길래 sys.stdin.readline()으로 수정하였다. ▶ input() 함수의 경우 prompt message를 출력하고 개행 문자(\n)를 삭제한 값을 리턴해서 느리다고 한다. ▶ 참고 : [Python] Input vs. sys... 2022. 1. 3.
[백준] 7490번 : 0 만들기 ☆ 유형 : 재귀 [예제] 2 3 7 [출력] 1+2-3 1+2-3+4-5-6+7 1+2-3-4+5+6-7 1-2 3+4+5+6+7 1-2 3-4 5+6 7 1-2+3+4-5+6-7 1-2-3-4-5+6+7 1. 풀이 ** 핵심 아이디어 1. 자연수 N의 범위(3≤N≤9)가 매우 한정적이므로 완전 탐색으로 문제 해결 가능 2. 수의 리스트와 연산자 리스트를 분리하여 모든 경우의 수 계산 3. 가능한 모든 경우를 고려하여 연산자 리스트를 만드는 것이 관건(재귀 함수 이용) ex. N = 3 [[' ', ' '], [' ', '+'], [' ', '-'], ['+', ' '], ['+', '+'], ['+', '-'], ['-', ' '], ['-', '+'], ['-', '-']] 4. 파이썬의 eval() .. 2022. 1. 1.
[백준] 1074번 : Z ☆ 유형 : 재귀함수 [예제] 2 3 1 [출력] 11 1. 풀이 출처 : 패스트캠퍼스 - 알고리즘 / 기술면접 완전 정복 패키지 Online ** 핵심 아이디어 1. Z 모양을 구성하는 4가지 방향에 대하여 차례대로 재귀적으로 호출 def solve(n,x,y): global result if n == 2: # 2*2인 경우 if x == X and y == Y: # 아래 그림에서 1번 print(result) return result += 1 if x == X and y + 1 == Y: # 아래 그림에서 2번 print(result) return result += 1 if x + 1 == X and y == Y: # 아래 그림에서 3번 print(result) return result += 1 if x.. 2022. 1. 1.
반응형