1 분 소요

사용 언어: Python3

매개변수의 이해와 구조화

# 만약 5개의 직사각형 스펙(가로, 세로)을 2차원 배열로 나타낸다면?

# 1) 2차원 배열
# 코드가 간결 but 직관적으로 이해하기 어려울 수 있음
A = [[0 for i in range(2)] for j in range(5)]

# 2) 1차원 배열 두 개 
# 코드가 복잡해질 수 있음 but 이해가 쉬움
width = [0 for i in range(5)]
height = [0 for i in range(5)]

문제

백준 1920

스크린샷 2023-03-27 오후 11 00 55

코드

내 풀이

# 존재하면 1, 존재하지 않으면 0 출력
N = int(input())
A = list(map(int, input().split()))
M = int(input())
B = list(map(int, input().split()))

def checkExist(target, lst):
  if target in lst:
    print(1)
  else:
    print(0)

for i in range(N):
  checkExist(B[i], A)
  • 쉽게 풀 수 있었으나 시간 초과가 발생했다..😱

다른 풀이

  • 정석은 정렬 후 이분탐색하는 문제
  • 하지만 파이썬 딕셔너리나 셋 같이 해시를 활용하면 쉽게 풀 수 있다!
N, A = int(input()), {x: 1 for x in map(int, input().split())} # ✅ comprehension 표현법
# print(A) # {4: 1, 1: 1, 5: 1, 2: 1, 3: 1}
M, B = int(input()), list(map(int, input().split()))

for x in B:
  print(A.get(x, 0)) # ✅ A 안에 x라는 key가 있으면 value 반환, 없으면 0 반환 -> O
  # print(1 if x in A else 0) # ✅ 혹은 3항 연산자처럼 사용할 수도 있다 -> O
  # print(A[x]) # 이렇게 하면 default 값을 지정하지 않았기 때문에 해당 key가 없을 때 에러 발생! -> X
  • A = {i: 1 for i in map(int, input().split())}
    • comprehension 표현법으로 딕셔너리 바로 만들기!
  • 딕셔너리와 함께 사용하는 get()
    • 특정 key 값이 없을 때 default value를 지정할 수 있다!
  • print(1 if x in A else 0)
    • print문 안에서 3항 연산자처럼 사용하는 방법


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기