문제 설명 : 369게임
369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는
숫자대신 3, 6, 9의 개수만큼 박수를 치는 게임이다.
머쓱이가 말해야 하는 숫자 order가 매개변수로 주어질 때,
머쓱이가 쳐야 할 박수 횟수를 return 하는 solution함수???
제한 사항
- 1 ≤ order ≤ 1,000,000
입출력예
order | result |
3 | 1 |
29423 | 2 |
문제 풀이
order를 문자열로 바꿔서 for문을 돌며 3,6,9중 하나일 때는 count++해주었다.
function solution(order) {
let count = 0
let str = order.toString()
for(let i =0; i <str.length; i++) {
if(str[i] === "3" || str[i] === "6" || str[i] === "9") {
count++
}
}
return count
}
문제 설명 : 가까운 수
정수 배열 array와 정수 n이 매개변수로 주어질 때,
array에 들어있는 정수 중 n과 가장 가까운 수를 return 하는 solution 함수????
제한 사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return한다.
입출력예
array | n | result |
[3, 10, 28] | 20 | 28 |
[10, 11, 12] | 13 | 12 |
문제 풀이
array가 오름차순이라고 안 했으니까 가까운 수가 여러 개일 경우 더 작은 수를 구하려면
일단 array에 sort()를 해주고 map을 이용해서 원소마다 n만큼 빼서 Math.abs()로 절댓값으로 바꾼 배열을 만들고
그 배열에서 Math.min()으로 가장 작은 수를 찾고 그 수의 index를 indexOf()로 찾으면
n과 가장 가까운 수 중에서 더 작은 수를 구할 수 있다.
function solution(array, n) {
let arr = array.sort((a,b) => a-b).map((v) => Math.abs(v-n))
let idx = arr.indexOf(Math.min(...arr))
return array[idx]
}
문제 설명 : 중복된 문자 제거
문자열 my_string이 매개변수로 주어진다.
my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return 하는 함수???
제한 사항
- 1 ≤ my_string ≤ 110
- my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
- 대문자와 소문자를 구분합니다.
- 공백("")도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
입출력예
my_string | result |
"people" | "peol" |
"We are the world" | "We arthwold" |
문제 풀이
new Set을 이용해서 중복 문자를 없애고 배열 안에 spread연산자를 사용해서 넣어준 후 join()으로 다시 문자열을 만들어줬다.
function solution(my_string) {
return [...new Set(my_string)].join('')
}
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Programmers' 카테고리의 다른 글
Programmers 문제 풀이 31 (0) | 2023.07.27 |
---|---|
Programmers 문제 풀이 30 (0) | 2023.06.28 |
Programmers 문제 풀이 28 (0) | 2023.06.24 |
Programmers 문제 풀이 27 (0) | 2023.06.23 |
Programmers 문제 풀이 26 (0) | 2023.06.22 |