오늘은 코딩 공부에 집중한다고 미뤄왔던 데이터 리터러시 강의를 수강하고, 튜터님 세션을 통해서 개인 과제 복기 및 numpy 사용법에 대해서 배웠다. 또한, 자격증 취득 계획을 세웠다.
4월) ISQTB CTFL / 5월) ADsP, SQLD, 품질경영기사 필기 / 6월) 6sigma, iso내부심사원 / 7월) 품질경영기사 실기
내일배움캠프 기간동안 시간을 소중히 여기면서 반드시 수료 직후 취업에 성공할 것이다.
오늘은 코트카타를 진행하면서 꽤나 어려웠던 점들이 있었고, 문제의 원인을 찾아 해결하면서 성장할 수 있었다.
1) 코드카타 17번 문항

이번주 까지 접하게 될 코드 카타의 문제들은 상당히 쉬울거라고 생각했는데, 자연수 뒤집어 배열로 만들기에서 엄청나게 많은 시간을 쓰게 되었다. 코드를 어떻게 짤 지 구상은 하였으나, 많은 오류를 만나게 되었기 때문이다.
아이디어
1. 정수 12345를 입력받아서 문자열 '12345'로 바꾼다
2. 문자열 '12345'를 역순으로 하나씩 배열에 넣는다
아이디어는 매우 간단했는데, 막상 코드로 구현하려고 하니까 쉽지 않았다
# 초기 코드
def solution(n):
answer = []
for a in str(n):
answer.append(str(n[n-a]))
return answer
초기에 이런식으로 코드를 구상해봤지만 syntax error가 생겼는데, 문자열과 정수형의 자료형을 바꿔가면서 한 코드에서 계속 쓰려고 하면서 실수가 생겼기 때문이었다.
그래서 생각을 바꿔서
1. 인덱스에 -를 붙여서 하나씩 리스트에 넣으면 어떨까?
2. for문의 변수에 *-1을 곱해주는 형태로 구현해보자
def solution(n):
answer = []
n_str = str(n)
for a in range(1,len(n_str)+1):
answer.append(int(n_str[a*-1]))
return answer
이렇게 코드를 작성해서 완성할 수 있었다.
하지만, 이때까지 코드카타를 하면서 이런 문제들을 쉽게 해결할 수 있는 다른 방법들이 있었기에 한번 찾아봤다.
1. 나는 하나씩 역순으로 넣어야한다는 것에 집착하고 있었는데
2. 리스트를 역순으로 재정렬하면 되는거 아니야?
라는 아이디어를 발견하고 리스트 관련 문서를 다시 찾아본 뒤
def solution(n):
answer = []
for a in str(n):
answer.append(int(a))
answer = answer[::-1]
return answer
[::-1]을 사용하면 리스트를 뒤집어 줄 수 있다는 것을 발견했고 내가 원하던 깔끔한 코드를 작성할 수 있었다.
> 입력을 역순으로 하는것이 아닌, 결과물을 뒤집는 발상의 전환을 배움
2) 정수 제곱근 판별

이 문항은 딱 보자마자 어제 배운 math를 import해서 사용하면 되겠구나라는 생각이 들었다.
아이디어
1. math를 import해서 sqrt 사용
2. 제곱근이 정수일경우, 정수가 아닐경우 if문으로 판단해준다
3. 서로 다른 return 값을 지정해준다
import math
def solution(n):
if type(math.sqrt(n)) == int:
return (math.sqrt(n)+1)**2
else:
return -1
그래서 간단하게 if문을 사용해서 코드를 작성하고 뿌듯해하고 있었다.

하지만, 깔끔하게 작성한 코드인줄 알았으나
2개 중 1개 성공이라는 실행 결과가 나와버렸다.
그래서 colab에서 함수를 직접 불러와서 사용해본 결과 121을 넣으면 144가 return이 되어야하는데 -1을 리턴하고 있음을 확인 할 수 있었다. 그래서 원인을 파악해보니, math.sqrt()의 반환값은 float이기 때문이었다.
결국 나는 제곱근이 정수일경우 type이 int일 것이다라고 가정을 했지만, 정수인지 아닌지의 여부와 상관없이 float 값이 나오고 있다.
import math
def solution(n):
if math.sqrt(n) == int(math.sqrt(n)):
return (math.sqrt(n)+1)**2
else:
return -1
따라서, int로 변환하여 소숫점 아래의 값을 날려버렸을때 float값과 동일해야한다는 조건으로 변경해주었고, 결과적으로 코드를 성공적으로 마무리할 수 있었다.
> 반환값의 type을 항상 체크해야함을 배움
'내일배움캠프 > TIL(Today I Learned)' 카테고리의 다른 글
| [2026/03/26] 내일배움캠프 14일차 TIL (1) | 2026.03.26 |
|---|---|
| [2026/03/25] 내일배움캠프 13일차 TIL (0) | 2026.03.25 |
| [2026/03/23] 내일배움캠프 11일차 TIL (0) | 2026.03.23 |
| [2026/03/20] 내일배움캠프 10일차 TIL (0) | 2026.03.20 |
| [2026/03/19] 내일배움캠프 9일차 TIL (0) | 2026.03.19 |