1주차 과제는 꽤 쉬운 편이었으나...... 막상 풀다 보니까 사소한 실수를 몇 개 해서 오답노트로 정리해두려고 한다.
아예 풀지 못하거나 동떨어진 답은 아니었지만, 문제 요구사항을 얼마나 잘 반영했는지는 반드시 짚고 넘어가야 할 것 같다.

 


 

1-1. 문자열 팰린드롬 여부 확인

문제 요약

앞에서 읽어도, 뒤에서 읽어도 같은 문자열이면 팰린드롬! 주어진 문자열이 팰린드롬인지 확인하는 프로그램을 작성하는 문제였음
(ex. 토마토, radar, civic)

내 코드 vs. 모범 답안

# 내 코드
def check_palindrome(input_word):
    reversed_word = input_word[::-1]
    return True if reversed_word == input_word else False

print(check_palindrome('사바사'))

# 모범 답안
def is_palindrome(s):
    start, end = 0, len(s) - 1
    while start <= end:
        if s[start] != s[end]:
            return False
        start += 1
        end -= 1
    return True

print(is_palindrome("radar"))  # True
print(is_palindrome("python")) # False

❌ 내가 놓친 부분

  • 문제에서는 반복문으로 앞뒤를 비교하라고 했는데 난 문자열 뒤집는 방식으로 처리함 ([::-1])
  • 출력은 맞지만, 예시처럼 입력 받고 결과 출력하는 흐름이 아니라 살짝 다른 느낌

✅ 기억할 포인트

  • 문제 요구 방식이 다르면 그 방식대로 구현하는 것도 중요 (근데 [::-1]` 슬라이싱은 꽤 유용해서 나중에 써먹을 것 같다ㅋㅋ)
  • 반복문으로 비교하는 로직도 꼭 한 번은 직접 짜볼 것
  • '출력 형태'도 채점에 영향을 줄 수 있다. 문제에서 원하는 포맷은 최대한 맞추기!

 


 

1-2. 짝수와 홀수 구분하기

문제 요약

사용자로부터 숫자를 입력받고, 그게 짝수인지 홀수인지 판단해서 출력하는 간단한 문제.
근데 은근히 빠뜨리기 쉬운 요소들이 있었다.


내 코드 vs. 모범 답안

# 내 코드
def check_even_or_odd(num):
    print('짝수입니다') if num % 2 == 0 else print('홀수입니다')

check_even_or_odd(999)

# 모범 답안
num = int(input("숫자를 입력하세요: "))
if num % 2 == 0:
    print("짝수입니다.")
else:
    print("홀수입니다.")

❌ 내가 놓친 부분

  • input()으로 사용자 입력을 받아야 하는데, 그냥 문자열을 넣어버림
  • "숫자를 입력하세요: " 같은 프롬프트 문구가 없음 → 사용자 입장에선 불친절
  • 함수로 짜는 것보다.. 문제에서는 그냥 input → 조건문 → print 흐름을 원했던 듯

✅ 기억할 포인트

  • input()을 받으면 항상 문자열이기 때문에 int()로 꼭 감싸줘야 한다
  • 문제에서 요구하는 형식이 있다면 우선은 그걸 따르자!

정리

사실 둘 다 정답과 엄청나게 동떨어진 것은 아니었지만,'문제에서 어떻게 풀라고 요구했는지'를 꼼꼼히 따져봐야 한다고 느꼈다.
실제로 코테 볼 때도 그런 부분 때문에 감점될 수 있으니 이런 작은 실수들도 그때그때 기록하고 고쳐가는 게 꽤 중요할 것 같다.
다음 과제에서는 문제 요구사항을 제대로 읽고, 그 흐름대로 구현해보는 걸 목표로! 빠샤!