난이도 | 풀이 시간 | 시간 제한 | 메모리 제한 |
---|---|---|---|
1 | 20분 | 1초 | 128MB |
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다.
예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKKK13을 출력합니다.
function solution(S) {
let sum = 0;
const alphabet = []
for (let i = 0; i < S.length; i++) {
if (!isNaN(Number(S[i]))) {
sum += Number(S[i]);
} else {
alphabet.push(S[i]);
}
}
alphabet.sort();
let result = '';
for (let i = 0; i < alphabet.length; i++) {
result += alphabet[i];
}
if (sum !== 0) {
result += sum;
}
console.log(result);
}
data = input()
result = []
value = 0
# 문자를 하나씩 확인하며
for x in data:
# 알파벳인 경우 결과 리스트에 삽입
if x.isalpha():
result.append(x)
# 숫자는 따로 더하기
else:
value += int(x)
# 알파벳을 오름차순으로 정렬
result.sort()
# 숫자가 하나라도 존재하는 경우 가장 뒤에 삽입
if value != 0:
result.append(str(value))
# 최종 결과 출력(리스트를 문자열로 변환하여 출력)
print(''.join(result))
배열을 문자열로 출력할 때 join 방법이 있다는 것을 알고 있었지만 적용하지 못했는데 이젠 비슷한 형식의 문제가 나오면 적용할 수 있을 것 같다.
JavaScript의 join
array.join(str)