이코테 책에 실린 문제지만 코드채점은 백준사이트에서 했다.
처음에 단순하게 입력조건 2개만 넣고 맞았다고 생각했는데 혹시 몰라 채점을 받아보니 오답판정을 받았다.
왜 그런가 곰곰이 생각하니 입력조건이 길어질 수 있는데, length
설정을 2로 설정했기 때문이다.
그리고 처음에 반복문 안에서 length
의 범위를 설정했는데, 코드의 가독성이 떨어지고 뭔가 맞지 않는듯한 느낌이 들어 고민하다가 시각을 넓혀 밖에서 length
를 선언했고, 정답 판정을 받았다.
어렵다고 생각하지 않은 문제였다.
'''
123402
7755
'''
n = int(input())
number = str(n)
length = (len(number) // 2) - 1
left = 0
right = 0
for i in range(len(number)):
if i <= length:
left = left + int(number[i])
else:
right = right + int(number[i])
if left == right:
print('LUCKY')
else:
print('READY')
👉🏽 LUCKY READY
이 문제는 저번 시계문제와 비슷한 느낌으로 풀 수 있다.
입력으로 주어진값을 str
형으로 변환하면 각 자리수에 쉽게 접근할 수 있다. 숫자값은 나중에 int
형으로 변환시켜주자.
그리고 isalpha(), isdigit()
함수를 처음 배웠는데,
문자열내부의 값이 알파벳인지 숫자인지 판별해주는 함수다.
이를 사용하면 알파벳과 숫자로 나눌 수 있고 그 값을 토대로 알파벳은 append
함수를, int는 number += int(i)
를 해주면 된다.
'''
K1KA5CB7
AJKDLSI412K4JSJ9D
'''
string = input()
result = []
number = 0
for i in string:
if i.isalpha():
result.append(i)
else:
number = number + int(i)
result.sort()
if number != 0:
result.append(str(number))
print(''.join(result))
👉🏽 ABCKK13
ADDIJJJKKLSS20