🫠 Programmers (level 0)
👉🏻 문제 55번 (저주의 숫자 3) : 1 ~ 100까지 숫자 3이 들어가거나, 3의 배수가 들어가면 +1을 하여 다음 숫자로 대체하여 사용하는 문제
function solution(n) {
// n만큼 배열을 생성하되, 3이 포함된 숫자와 3의 배수가 제외되기 때문에 길이를 몰라 *2
const maxNumber = n * 2
// n * 2만큼 배열 생성 (1 ~ n*2)
let array = new Array(maxNumber).fill(1).map((item, index) => item + index)
// 3의 배수가 아니고, 숫자 3을 포함하지 않은 배열 요소 구하기
let result = array.filter((item) => {
return item % 3 !== 0 && !(item+'').includes('3')
})
// index는 0부터 시작이므로 -1
return result[n-1]
}
✅ 확인할 점
💡 1 ~ 100까지 숫자를 나열하되, 만약 배열의 요소에 3의 배수가 있거나 숫자 3을 포함하고 있다면(13, 23, 33,...) 이를 제외해야 한다.
따라서 new Array(100)을 할 경우, 길이가 100보다 작아지기 때문에 정확한 길이를 알 수 없어 n * 2를 주었다.
💡 배열 요소를 1, 2, 3, 4, ... 처럼 값을 1 ~ n*2 만큼 넣기 위해 fill(1)을 통해 배열 요소를 1로 채운 후, map()을 사용하였다.
💡 (item+'')을 통해 문자열로 만들고, includes를 통해 문자 '3'을 포함하고 있는지 확인하였다.
'프로그래머스 풀이 > level0' 카테고리의 다른 글
[Programmers] level 0) 문제 '문자열 밀기' 풀이 (0) | 2023.04.11 |
---|---|
[Programmers] level 0) 문제 '치킨 쿠폰' 풀이 (0) | 2023.04.05 |
[Programmers] level 0) 문제 '직사각형 넓이 구하기' 풀이 (0) | 2023.04.04 |
[Programmers] level 0) 문제 '암호 해독' 풀이 (0) | 2023.03.17 |
[Programmers] level 0) 문제 '컨트롤 제트' 풀이 (0) | 2023.03.14 |