일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BFS
- 웹 프론트엔드
- lv2
- BASIC
- 그리디 알고리즘
- 자바스크립트
- DFS
- 정렬
- 너비 우선 탐색
- 파이썬
- CSS
- 다이나믹 프로그래밍
- 스택
- 프로그래머스스쿨
- 프로그래머스
- 구현
- DP
- 딕셔너리
- 문자열
- 그래프 탐색
- 백준
- 그래프 이론
- level2
- 브루트포스 알고리즘
- web
- JavaScript
- 알고리즘
- programmers
- 그래프이론
- 자료구조
Archives
- Today
- Total
DevLog:-)
[알고리즘][파이썬]1920-수찾기 본문
반응형
문제
코드
1.이분탐색을 이용한 코드
import sys
import sys
n = int(input())
a = list(map(int,sys.stdin.readline().split()))
m = int(input())
b = list(map(int,sys.stdin.readline().split()))
a.sort()
for i in b:
s = 0
e = n-1
f = 0
while(s<=e):
M = (s+e)//2
if(a[M]<i):
s = M+1
elif(a[M]>i):
e = M-1
else:
f = 1
print(1)
break
if(f == 0):
print(0)
이분탐색
1.sort함수를 이용하여 오름차순으로 정렬한다.
2.start, end를 두고 그 가운데 값을 기준으로 탐색을 진행한다.
3.-(중심값<목표값) -> (start = 중심값+1) 변경
-(중심값>목표값) -> (end = 중심값-1) 변경
4.찾으면 1을, 못찾고 while문이 끝나면 0을출력한다.
(while문의 종료조건은 start>end일 때이다.)
2.딕셔너리를 이용한 코드
import sys
n = int(input())
a = list(map(int,sys.stdin.readline().split()))
m = int(input())
b = list(map(int,sys.stdin.readline().split()))
map = {} #딕셔너리 선언
for i in a:
map[i] = 0 #딕셔너리에 데이터 저장
for i in b:
if(i in map): #목표값 있는지 확인
print(1)
else:
print(0)
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[알고리즘][파이썬]1149-RGB거리 (0) | 2023.05.14 |
---|---|
[알고리즘][파이썬]2504-괄호의 값 (0) | 2023.05.14 |
[알고리즘][파이썬]10828-스택 (0) | 2023.05.14 |
[알고리즘](파이썬)10989-수 정렬하기 3 (0) | 2023.05.12 |
[알고리즘](파이썬)16953-A→B (1) | 2023.05.12 |