[파이썬] set함수

폼폼(YUNA AN)·2024년 9월 13일

사소한 발견

목록 보기
24/33
post-thumbnail

👩‍🏫 문제

2351. First Letter to Appear Twice
주어지는 문자열에서 2회 이상 등장하는 문자를 return하면 된다.
두 개 이상의 정답이 있는 경우 가장 먼저 반복되는 문자를 return.

👩‍🏫 첫 번째 풀이(list 활용)

tmp = []
for c in s:
	if c in tmp:
		return c
    tmp.append(c)
  • c를 순차적으로 list에 append하며 if c in tmp:로 tmp에 포함되었는지 확인하는 간단한 구조

👩‍🏫 두 번째 풀이(set 활용)

visited = set()
for c in s:
	if c in visited:
		return c
    visited.add(c)
  • list 대신 set을 활용했다.
  • 그 이유는 listif c in visited: 단계에서 모든 문자열을 순회하면서 c가 있는지 확인하는데, set은 딕셔너리처럼 필요한 부분만 콕 집어서 확인한다 -> 메모리 효율성이 올라감.
  • set은 append 대신 add를 이용한다
  • tmp 보다 visited라는 변수명이 더 적합하다.

💡 set 활용하는 방법들 정리

  1. {a, b, c}
    이렇게 {}brackets 안에 원소 넣으면 set 객체 형성됨. 빈 dictionary를 생성할 때와 헷갈리지 말자.
  2. set('객체')
    안에 넣은 객체를 set으로 바꿔준다.
nums = [1, 2, 3]
A = set(nums)

print(A, type(A))
=> {1, 2, 3} <class 'set'>
profile
광고 도메인과 콘텐츠 기획의 전문성을 갖춘 데이터 분석가입니다.

0개의 댓글