-
프로그래머스 저주의 숫자 3STUDY/Code TEST 2023. 6. 16.
[level 0] 저주의 숫자 3 - 120871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
성능 요약
메모리: 33.5 MB, 시간: 0.22 ms
구분
코딩테스트 연습 > 코딩테스트 입문
채점결과
Empty
문제 설명
3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.
10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 1 1 6 8 2 2 7 10 3 4 8 11 4 5 9 14 5 7 10 16 정수
n
이 매개변수로 주어질 때,n
을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
n
≤ 100
입출력 예
n result 15 25 40 76
입출력 예 설명
입출력 예 #1
- 15를 3x 마을의 숫자로 변환하면 25입니다.
입출력 예 #2
- 40을 3x 마을의 숫자로 변환하면 76입니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
코드
function solution(n) { let answer = 0 for(let i=1; i<=n; i++){ answer += 1 while(answer%3 === 0 || String(answer).split("").indexOf("3") >= 0){ answer += 1 } } return answer }
코드 설명
조건은 3의 배수를 쓰지 않고 숫자 3을 사용하지 않는 것이다.
핵심 포인트는 일반적인 숫자처럼 다음 순서로 갈 때 1씩 더해지지만,
그 값이 위에서 말하는 조건에 부합하는지 아닌지만 파악하면 되는 것이다.
예를들어 n이 10 이라면
정상적인 숫자 나열 -
3x마을 숫자 나열 -
1 2 3 4 5 6 7 8 9 10 1 2 3, 45 6, 78 9, 1011 12,13, 1415, 16
그래서 나는 while문을 써서 값이 나올때까지 answer에 값을 더 하는 방식으로 썼다.
그리고 숫자 3을 쓰는 것을 파악하는 조건식에는
먼저 Number형태를 String으로 변경 후 split메소드로 배열로 만들고 indexOf로 "3"을 가지고 있는지 없는지 확인했다.(indexOf 메소드는 찾는 값의 인덱스 값을 알려주며, 같은 값이 없다면 -1을 return 한다)'STUDY > Code TEST' 카테고리의 다른 글
프로그래머스 문자열 밀기 (0) 2023.06.20 프로그래머스 왼쪽 오른쪽 (0) 2023.06.19 프로그래머스 직사각형 넓이 구하기 (0) 2023.06.14 프로그래머스 로그인 성공? (0) 2023.06.13 프로그래머스 캐릭터의 좌표 (0) 2023.06.13 - 1 ≤