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()
로 꼭 감싸줘야 한다- 문제에서 요구하는 형식이 있다면 우선은 그걸 따르자!
정리
사실 둘 다 정답과 엄청나게 동떨어진 것은 아니었지만,'문제에서 어떻게 풀라고 요구했는지'를 꼼꼼히 따져봐야 한다고 느꼈다.
실제로 코테 볼 때도 그런 부분 때문에 감점될 수 있으니 이런 작은 실수들도 그때그때 기록하고 고쳐가는 게 꽤 중요할 것 같다.
다음 과제에서는 문제 요구사항을 제대로 읽고, 그 흐름대로 구현해보는 걸 목표로! 빠샤!
'Study > Algorithm' 카테고리의 다른 글
[백준] 2475번: 검증수 (0) | 2025.04.24 |
---|---|
[백준] 2438번: 별 찍기 - 1 (0) | 2025.04.24 |
[백준] 6840번: Who is in the middle? (4) | 2025.04.24 |
[항해 알고리즘 스터디] 2주차 과제 정리 (후위 표기법 계산하기 / 중복 없이 가장 긴 문자열 찾기) (2) | 2025.04.24 |
[항해 알고리즘 스터디] 1주차 실강 과제 (패션왕 신혜빈) (2) | 2025.04.18 |