본문 바로가기

Python/코딩 테스트 해설집

백준 - 1920번 - 수 찾기

반응형

오늘 포스팅에서는 백중 중 1920번 문제 수 찾기를 파이썬으로 풀어보는 시간을 갖도록 한다. 기본적인 문제이니 잘 풀어보길 권장한다. 

 

목차

1. 문제의 출처 - 백준 1920번

2. 백준 1920번 Python 해설

3. 정답 인증 

 

1. 문제의 출처 - 백준 1920번

 

 

이번 문제의 핵심은 내가 원하는 정수가 정말 있는지 판단하는 것이다. 이번 문제의 유형은 탐색과 정렬의 문제라고 보는 것이 맞고, 이것을 어떻게 해결했는지 코딩 테스트 해설을 해보고자 한다. 

 

 


2. 백준 1920번 Python 해설

이번 문제 풀이의 기본적인 것은 input과 map함수이다. 문제 풀이할 때 핵심적인 것은 for과 if문의 기본적인 제어이다. 

1
2
3
4
5
6
7
8
9
10
11
12
= input()
data_list = set(map(int, input().split()))
= input()
m_list = list(map(int, input().split()))
 
for i in range(len(m_list)):
    if m_list[i] in data_list:
        print('1')
    else:
        print('0')
    
 
cs

 

  • 문제풀이 기본 영역
    • input()은 데이터가 string 형태로 입력되게 된다.
      • 그래서 data_list를 map함수를 통해 정수로 반드시 변환해주어야 한다. 
      • 또한 set을 통해서 중복 데이터를 제거하여 문제 풀이의 성능을 개선해준다. 
  • 문제 풀이 핵심 영역
    • for 문을 통해서 모든 데이터에 대해서 접근합니다. 그렇게 되면 매번 i번째 정수가 리스트에 있는지 확인할 수 있다. 
    • if 문을 통해 m_list의 i번째 수가 data_list에 있는지 확인을 해줍니다. 만약 그 값이 True면 문제의 요구사항대로 1을 반환하고, 이외의 모든 케이스에는 0을 반환하도록 함수를 구성했다. 

 


3. 정답 인증 

 

위와 같은 코드로 풀이를 하게 되면 시공간 복잡도면에서도 합격을 할 수 있는 것으로 보인다. 다양한 문제 풀이가 있을 수 있으니 항상 자신만의 손코드를 작성하고 이를 자신만의 창의적인 코드로 구현하는 연습하는 것을 권장한다. 

 

백준 1920번을 파이썬으로 풀이한 결과
1920번 수찾기 정답 인증

 

반응형