코딩테스트/99클럽
99클럽 코테 스터디 1일차 TIL - 자연수 뒤집어 배열로 만들기
꼽파
2024. 7. 23. 10:20

99클럽의 스터디를 참가하게 된 이유
배경
- 문득 어느덧 7월의 마지막 날이 다가오고 있다는 것이 실감났다. 의도치않게 이전 프로젝트에 할애하는 시간이 많아졌기 때문에 코딩테스트는 신경을 쓰지 않고 있었다.
- 코딩테스트는 개발자라면 준비를 해야되는 부분이기 때문에 반드시 해야하지만, 혼자서 하게되면 미루게 된다.
- 6주간 매일 1문제씩이라도 풀다보면 노베이스는 탈출하지 않을까 싶어서 3만 원이라는 비용을 내고 스터디에 참가하였다.
- 난이도는 비기너(프로그래머스 레벨1)로 등록하였다. 자바스크립트 반은 없지만 프론트엔드 지망하시는 분이 있어서 같이 하면 될 것 같다.
이유
- 혼자 하게 되면 미루게 되어서 코테 준비는 영원한 숙제가 되어버린다. 코딩테스트 없는 곳에 취업을 해도 막상 회사 일을 하다보면 안 하게 된다고 한다.
- 다른 사람들의 풀이를 보면서 내 풀이를 객관적으로 파악하는 습관을 들이고 싶다. 다른 사람들과 공유를 해야 더 효율적으로 풀 수 있는 방법을 익히고, 다양한 풀이과정들을 학습할 수 있다.
자연수 뒤집어 배열로 만들기
출처 : 프로그래머스 Lv.1
문제 설명
- 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건
- n은 10,000,000,000이하인 자연수입니다.
입출력 예
| n | return |
| 12345 | [5, 4, 3, 2, 1] |
자바스크립트
풀이1
function solution(n) {
const answer = []
do {
answer.push(n % 10)
n = Math.floor(n / 10)
console.log(n % 10)
} while (n > 0)
return answer
}
- 배열 하나를 생성한 후, do while 반복문을 통해 원소 하나씩 역순으로 넣어줌.
- 10으로 나눈 나머지(일의자리수)를 넣어주는 방식으로 진행함.
풀이2
function solution(n) {
const reversedArr = n.toString().split('').reverse();
return reversedArr.map(el => parseInt(el));
}
- toString과 split 메서드를 활용하여 숫자를 문자열 숫자 배열로 변환함.
- reverse를 통해 역순으로 정렬해준 후, map 메서드로 원소들을 정수로 변환해줌.
파이썬 풀이
def solution(n):
# 숫자를 문자열로 변환하여 digits라는 리스트를 생성
digits = list(str(n))
# 리스트 슬라이싱을 통해 숫자를 역순으로 정렬함
reversed_digits = digits[::-1]
# 각 자릿수를 정수로 변환하여 리스트로 반환함
result = [int(digit) for digit in reversed_digits]
return result
리스트 컴프리헨션
- reversed_digits 리스트의 각 원소 digit을 가져와서 이를 정수로 변환한 후 result라는 새로운 리스트에 담음.
result = [int(digit) for digit in reversed_digits]
반복문과 조건절
- 위 리스트 컴프리헨션과 같은 표현임.
result = []
for digit in reversed_digits:
result.append(int(digit))728x90