일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- programmers
- 정렬
- 너비 우선 탐색
- 그래프이론
- 알고리즘
- JavaScript
- 브루트포스 알고리즘
- CSS
- BFS
- 스택
- 백준
- 프로그래머스
- BASIC
- level2
- 그리디 알고리즘
- DP
- 그래프 탐색
- 문자열
- web
- DFS
- 자바스크립트
- 프로그래머스스쿨
- 딕셔너리
- 그래프 이론
- 자료구조
- 구현
- 다이나믹 프로그래밍
- 웹 프론트엔드
- lv2
- 파이썬
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 |