반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131128
Counter를 사용해본 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. X와 Y의 각 문자별 빈도수를 Counter에 저장해 & 계산으로 공통적인 부분을 common_count에 저장합니다.
2. 공통 수를 저장할 list common_num 선언 후 빈 배열로 초기화합니다.
📔 풀이과정
1. 9부터 0까지 for loop를 수행하며 다음을 진행합니다.
1-1. 숫자 d를 문자로 변환해 difit_str에 저장합니다.
1-2. common_num에 digit_str과 common_count에서 빈도수를 곱한 문자열을 넣어줍니다.
2. common_num이 빈 배열이라면 -1을 반환합니다.
3. common_num을 문자열로 바꿔줍니다.
4. 0000... 형태의 문자열이라면 0만 반환합니다.
📔 정답 출력 | 반환
common_num을 반환합니다.
📕 Code
📔 Python3
from collections import Counter
def solution(X, Y):
common_count = Counter(X) & Counter(Y)
common_num = []
for d in range(9, -1, -1):
digit_str = str(d)
if digit_str in common_count:
common_num.append(digit_str * common_count[digit_str])
if not common_num:
return "-1"
common_num = ''.join(common_num)
if common_num == "0" * len(common_num):
return "0"
return common_num
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(Python3) - 프로그래머스(PCCE 기출문제) : 7번 / 가습기 (0) | 2024.11.07 |
---|---|
(Python3) - 프로그래머스(PCCE 기출문제) : 8번 / 창고 정리 (0) | 2024.11.07 |
(Python3) - 프로그래머스(PCCE 기출문제) : 8번 / 닉네임 규칙 (0) | 2024.11.05 |
(Python3) - 프로그래머스(2024 KAKAO WINTER INTERNSHIP) : 가장 많이 받은 선물 (0) | 2024.11.04 |
(Python3) - 프로그래머스(코딩테스트 입문) : 안전지대 (0) | 2024.11.03 |