1. 문자열 재정렬
- 난이도
- 하
- 풀이 시간
- 20분
- 시간 제한
- 1초
- 메모리 제한
- 128 MB
- 출처
- Facebook 인터뷰
A. 문제
- 하
- 20분
- 1초
- 128 MB
- Facebook 인터뷰
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 모든 알파벳을 오름차순으로 정렬하여 출력하고, 모든 숫자를 더한 값을 이어서 출력한다.
a. 예를 들면.
K1KA5CB7은 AB CKK13이다.
b. 입력 조건
- 첫째 줄에 하나의 문자열 S가 주어진다
- 1 <= S의 길이 <= 10000
c. 출력 조건
- 문제에서 요구하는 정답을 출력
d. 테스트 케이스
입력 예시
K1KA5CB7
AJKDLSI412K4JSJ9D
출력 예시
ABCKK13
ADDIJJJKKLSS20
B. 내 답안
a. 1번 답안
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
if s[i] >= 'A' and s[i] <= 'Z':
str_array.append(s[i])
elif s[i] >= '0' and s[i] <= '9':
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
# 6분 13초 / pass
b. 2번 답안
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
temp = ord(s[i])
if temp >= 65 and temp <= 90:
str_array.append(s[i])
elif temp >= 48 and temp <= 57:
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
a. 회고
내 풀이
- 아스키코드 변형이 떠올랐다. 1번 답안은 될까?라는 호기심으로 접근한 것이고, 2번 답안은 문자의 유니코드 값을 대입했다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
- 1 <= S의 길이 <= 10000
- 문제에서 요구하는 정답을 출력
d. 테스트 케이스
입력 예시
K1KA5CB7
AJKDLSI412K4JSJ9D
출력 예시
ABCKK13
ADDIJJJKKLSS20
B. 내 답안
a. 1번 답안
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
if s[i] >= 'A' and s[i] <= 'Z':
str_array.append(s[i])
elif s[i] >= '0' and s[i] <= '9':
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
# 6분 13초 / pass
b. 2번 답안
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
temp = ord(s[i])
if temp >= 65 and temp <= 90:
str_array.append(s[i])
elif temp >= 48 and temp <= 57:
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
a. 회고
내 풀이
- 아스키코드 변형이 떠올랐다. 1번 답안은 될까?라는 호기심으로 접근한 것이고, 2번 답안은 문자의 유니코드 값을 대입했다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
입력 예시
K1KA5CB7
AJKDLSI412K4JSJ9D
출력 예시
ABCKK13
ADDIJJJKKLSS20
a. 1번 답안
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
if s[i] >= 'A' and s[i] <= 'Z':
str_array.append(s[i])
elif s[i] >= '0' and s[i] <= '9':
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
# 6분 13초 / pass
b. 2번 답안
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
temp = ord(s[i])
if temp >= 65 and temp <= 90:
str_array.append(s[i])
elif temp >= 48 and temp <= 57:
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
a. 회고
내 풀이
- 아스키코드 변형이 떠올랐다. 1번 답안은 될까?라는 호기심으로 접근한 것이고, 2번 답안은 문자의 유니코드 값을 대입했다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
if s[i] >= 'A' and s[i] <= 'Z':
str_array.append(s[i])
elif s[i] >= '0' and s[i] <= '9':
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
# 6분 13초 / pass
s = input()
str_array = []
int_array = 0
for i in range(len(s)):
temp = ord(s[i])
if temp >= 65 and temp <= 90:
str_array.append(s[i])
elif temp >= 48 and temp <= 57:
int_array += int(s[i])
str_array.sort()
print(*str_array, sep='', end='')
print(int_array)
a. 회고
내 풀이
- 아스키코드 변형이 떠올랐다. 1번 답안은 될까?라는 호기심으로 접근한 것이고, 2번 답안은 문자의 유니코드 값을 대입했다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
내 풀이
이해한 내용을 바탕으로 작성했습니다.
책에서는 isalpha() 메소드를 사용하였다.
isalpha()를 두 번인가 봤었는데, 익숙해지지 못해서 바로 떠오르지 않았다.
a. 책 답안
python-for-coding-test/2.py at master · ndb796/python-for-coding-test (github.com)
참고문헌
나동빈, "이것이 취업을 위한 코딩 테스트다 with 파이썬", 초판, 2쇄, 한빛미디어, 2020년
Ghost