[파이썬] 백준 1920 - 수 찾기

2021. 4. 19. 01:24· 알고리즘 공부
반응형

요즘 포스팅이 뜸했던 이유는, 막학기에 듣는 과목이 팀플과목이라 팀플에 집중하기도 했고, 요즘은 '깃허브'를 시작하게 되었다. (현업에 가면 깃허브를 많이 쓴다고해서 지금부터라도 손에 익히려고..ㅎ) 아무튼 알고리즘 공부했던 코드들을 깃허브에 commit과 push를 하고 있다.  오랜만에 새로운 문제를 풀면서 설명을 붙혀가며 포스팅하고 싶어, 이 블로그에다가 포스팅하려고 한다! (물론, 깃허브와 블로그 포스팅도 꾸준히 할 것이다!!)

'Binay Search' 즉, 이분탐색 알고리즘을 사용하여 푸는 문제이다.

<나의코드>

import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
M = int(sys.stdin.readline())
M_list = map(int, sys.stdin.readline().split())
A.sort()


def binarySearch(k, A, left, right):
    if left > right:
        return 0
    mid = (left+right)//2
    if k == A[mid]:
        return 1
    elif k < A[mid]:
        right = mid - 1
    else:
        left = mid + 1
    return binarySearch(k, A, left, right)


for k in M_list:
    left = 0
    right = len(A)-1
    print(binarySearch(k, A, left, right))

 

<시행착오>

k값의 위치, 중간값의 위치에 따라 left, right 값을 설정하는 것이 혼동되었음.

 

< 해결방안 >

중간값이 k 보다 작으면 왼쪽편에는 k값이 없으니 left 값을 mid + 1로 하여 오른편으로 이동시키고, 중간값이 k값보다 크면 k값이 없으니 right를 mid-1로 하여 왼쪽으로 이동시킨다는 개념을 확실히 숙지하고 문제를 풀었다.

 

 

✭ 블로그 포스팅, 깃허브 열심히하자!

 

반응형

'알고리즘 공부' 카테고리의 다른 글

[파이썬] 백준 1271 - 엄청난 부자 2  (0) 2021.08.23
[파이썬] 백준 10951 - "A + B - 4"  (0) 2021.04.20
[파이썬] 백준 8958 - OX퀴즈  (0) 2021.03.14
[파이썬] 백준 1546 - 평균  (0) 2021.03.11
[파이썬] 백준 9012 - 괄호  (0) 2021.03.08
'알고리즘 공부' 카테고리의 다른 글
  • [파이썬] 백준 1271 - 엄청난 부자 2
  • [파이썬] 백준 10951 - "A + B - 4"
  • [파이썬] 백준 8958 - OX퀴즈
  • [파이썬] 백준 1546 - 평균
Developer KTU
Developer KTU
Developer KTU
KTU 개발 블로그
Developer KTU
전체
오늘
어제
  • 분류 전체보기
    • 웹 개발 공부 : Back-end
      • JAVA
      • JPA
      • JAVA - Spring
      • MySQL
      • Docker
      • Redis
      • JSP
      • DevOps
      • 파이썬 - 장고
      • 운영체제
      • WEB
    • 블록체인
    • 웹 개발 공부 : Front-end
      • React
      • Javascript
      • JQuery
      • Ajax
    • 알고리즘 공부
    • 나의 커리어

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Back-end
  • Python
  • 백엔드
  • 코딩테스트
  • JavaScript
  • Algorithm
  • SpringBoot
  • 백준
  • Java
  • 자바스크립트
  • 백엔드개발자
  • 스프링부트
  • BOJ
  • 알고리즘
  • 웹개발
  • 알고리즘공부
  • 파이썬
  • 자바
  • 알고리즘공부기
  • 컴퓨터공학

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Developer KTU
[파이썬] 백준 1920 - 수 찾기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.