CodeUp(코드업) 풀이 (1020번)

이 포스팅은 codeup.kr(코드업)의 문제를 Python3로 풀고 정리한 내용입니다.


1020 : [기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기

문제 설명

주민등록번호는 다음과 같이 구성된다.

XXXXXX-XXXXXXX

앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류검출코드이다.

주민등록번호를 입력받아 형태를 바꿔 출력해보자.

입력

주민등록번호 앞 6자리와 뒤 7자리가 “-“로 구분되어 입력된다.

출력

“-“를 제외한 주민번호 13자리를 모두 붙여 출력한다.

입력 예시

980907-1121112

출력 예시

9809071121112


내 풀이

1
2
3
# 입력받은 문자열을 personal_id라는 변수에 담는다.
personal_id = input();
print(''.join(personal_id .split('-')));
  • personal_id .split(‘-‘)
    : 변수에 담긴 주민번호값을 '-'를 기준으로 나눈다.
  • ‘’.join(personal_id .split(‘-‘))
    : “-“를 없앤 주민번호값을 공백없이 붙이기 위하여 join을 사용하는데 구분자를 넣고 싶다면 .join에 넣어주면 된다.
구분자 문자열을 넣어 연결한 예시
1
2
3
4
5
6
7
8
fruit = ['apple', 'banana',  'orange'];
# '-'로 연결한 예시
print('-'.join(fruit));
# apple-banana-orange

# 공백' '으로 연결한 예시
print(' '.join(fruit));
# apple banana orange

모범 답안

1
2
a,b=input().split('-')
print(a+b)
  • 모범 답안의 경우, 입력받을 때부터 '-'를 기준으로
    변수 a, b에 각각 나누어 담았다.
  • 더하기(+) 연산자를 이용하여 문자열을 이어붙였다.
  • 입력할 때부터 구분자 문자열을 기준으로 변수 2개에 나누어 담아주는 모범 답안은 시간 복잡도면에서 효율적으로 보인다.
  • 내가 작성한 코드는 사용자가 입력한 값을 통째로 받아서 그 이후에 split을 해줘서 코드 라인이 1줄 더 많지만, 변수를 1개 만들어 메모리를 더 적게 할당 받기 때문에 공간 복잡도면에서 효율적이라고 생각한다.