| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 네트워크 관리사 2급 실기
- 카카오
- 프로그래머스
- 리얼클래스
- KT
- SSAFY 7기
- 네트워크 관리사 2급
- IT 트렌드
- SSAFY
- 코딩테스트 연습
- java 객체지향 프로그래밍
- 신문 스크랩
- 싸피셜
- IT 동향
- 백준
- 구글
- SSAFYcial
- 백준위
- 우테코
- python
- 코딩테스트
- 싸피
- 신문스크랩
- 코테
- html
- 인앱결제
- it 뉴스
- Java
- 네트워크 관리사
- it 이슈
Archives
- Today
- Total
개발자일걸요..?
1920번 수 찾기 본문
728x90
반응형
문제링크 : www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net

<알고리즘>
1) 숫자배열, 찾고자 하는 수의 배열 입력받기
2) 처음 주어진 숫자 배열만 정렬(정렬함수가 제일 시간복잡도가 작음)
3) 찾고자 하는 수의 배열의 수 만큼 함수를 돌리면서 존재여부 확인
3-1) 처음 주어진 숫자배열의 경계 밖의 숫자인지 확인
3-2) 처음 주어진 숫자배열의 경계의 숫자인지 확인
3-3) 위의 경우가 모두 아니라면 재귀함수를 이용해 이분탐색 적용
이분 탐색 -> 배열의 처음과 끝을 left와 right로 정한 후, target을 mid값((left+right)//2)과 비교해 왼쪽 분할에서 다시 찾을지 오른쪽 분할에서 다시 찾을지를 적용하여 반복
+) 참고 : wootool.tistory.com/62
[알고리즘] 이분 탐색
이분 탐색 탐색 기법중에 하나로 원하는 탐색범위를 두 부분으로 분할해서 찾는 방식입니다. 그렇기에 원래의 전부를 탐색하는 탐색 속도에 비해 빠릅니다. 이분 탐색을 하는 방법은 left , right
wootool.tistory.com
메모리 : 44736KB 시간 : 772ms
def isIt(numbers, left, right, mid, wantfind):
if(numbers[mid]<wantfind):
if(left==mid or mid == right):
return 0
return isIt(numbers,mid,right,(mid+right)//2,wantfind)
elif(numbers[mid]>wantfind):
if (left == mid or mid == right):
return 0
return isIt(numbers, left,mid,(left+mid)//2,wantfind)
elif(numbers[mid]==wantfind):
return 1
import sys
M = int(sys.stdin.readline())
numbers= list(map(int,sys.stdin.readline().split()))
numbers = sorted(numbers)
N = int(sys.stdin.readline())
target = list(map(int,sys.stdin.readline().split()))
#targe N개의 존재여부를 찾음
for i in range(0,N):
#아예 범위 안에 없는 수인지 확인
if(numbers[0]>target[i] or numbers[M-1]<target[i]):
print(0)
#경계 선 확인
elif (numbers[0]==target[i] or numbers[M-1]==target[i]):
print(1)
#경계선 안 확인
else:
print(isIt(numbers, 0,M-1,M//2,target[i]))반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
| 2630번 색종이 만들기 (0) | 2021.03.01 |
|---|---|
| 10816번 숫자카드2 (0) | 2021.02.28 |
| 5430번 AC (0) | 2021.02.27 |
| 1021번 회전하는 큐 (0) | 2021.02.26 |
| 10866번 덱 (0) | 2021.02.26 |
Comments