본문 바로가기

코딩테스트/코딩 테스트 입문

A로 B 만들기

문제

 

# 내 풀이

def solution(before, after):
    alist = list(after)
    for a in before:
        if a in alist:
            alist.remove(a)
    return 1 if alist == [] else 0
  • list(after) : list로 형 변환 → 문자열의 각 문자가 list의 각 요소가 된다.
  • if a in alsit : alist 안에 a가 있다면 True, 없다면 False
  • alist.remove(a) : alist에서 a의 값을 삭제시켜준다.
  • return 1 if alist == [] else 0 : 삼항 연산자로 True 1, False 0이 반환

 

# 헷갈렸던 부분

  • str에 사용할 수 있는 메서드와 list에 사용할 수 있는 메서드가 정확히 정리되지 않아서 서로 섞어서 사용하며, 오류가 발생했던 상황이 많았다. 각 메서드를 다시 한번 공부하여 개념을 늘림.

 

 

 

# GPT 풀이

1. sorted() 메서드를 활용한 경우

def solution(before, after):
    return 1 if sorted(before) == sorted(after) else 0
  • sorted() : 각 문자열을 알파벳 순서대로 정렬하였다.

 

2. collections.Counter를 이용한 경우

from collections import Counter

def solution(before, after):
    return 1 if Counter(before) == Counter(after) else 0
  • Counter() : 문자열이나 리스트 등의 요소 개수를 세어 딕셔너리에 저장한다.

 

 

 

# 삼항 연산자

- Python에서 한 줄로 if-else 조건문을 표현하는 방법이다.

값1 if 조건 else 값2
  • 조건이 True이면 값1을 반환
  • 조건이 False이면 값2를 반환

 

 

 

# collections.Counter(iterable or mapping)

- Python의 collections 모듈에 포함된 문자열이나 리스트 등의 요소 개수를 세어주는 딕셔너리 기반 자료구조이다.

from collections import Counter

word = "banana"
counter = Counter(word)

print(counter)	// 결과 : Counter({'a': 3, 'n': 2, 'b': 1})

'코딩테스트 > 코딩 테스트 입문' 카테고리의 다른 글

팩토리얼  (0) 2025.03.15
진료 순서 정하기  (0) 2025.03.15
k의 개수  (0) 2025.03.11
2차원으로 만들기  (0) 2025.03.11
모스부호  (0) 2025.03.11