문제1
정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.
문제2
정수로 이루어진 리스트 num_list가 주어집니다.
num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
문제3
1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때
얻는 점수는 다음과 같습니다.
a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.
두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
문제4
문자열 myString이 주어집니다.
"x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 빈 문자열은 반환할 배열에 넣지 않습니다.
문제5
2차원 정수 배열 board와 정수 k가 주어집니다.
i + j <= k를 만족하는 모든 (i, j)에 대한 board[i][j]의 합을 return 하는 solution 함수를 완성해 주세요.
🕹️ 문제를 풀기위해 알면 좋을 것
- Array.sort
-Math.pow
Math.pow(base, exponent)
base를 exponent번 만큼 제곱한 값을 리턴한다.
-Math.abs()
Math.abs()
인수로 받은 값의 절대값을 리턴해준다
- Array.filter( )
filter 메서드는 주어진 배열의 일부에 대한 얕은 복사본을 생성,
제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링 해 리턴해준다
- Array.split( )
split.split("string")
특정 문자열을 기준으로 잘라서 배열로 만들어준다고 알고 있었는데
그동안 string.split('') 이렇게 문자열을 배열로 바로 치환하는데만 사용해서
특정 문자열로 가르면 어떻게 되는지는 잊고 있었다ㅠ
const str = "axbxxcxxxdddxxcccx"
const words = str.split("x");
console.log(words);
// ["a", "b", "", "c", "", "", "ddd", "", "ccc", ""]
이렇게 해당 문자열은 "" 빈문자열로 치환해버린다ㅠ.... 그래서 거르는 작업이 더 필요하다
내 답안지
문제1
function solution(n) {
return n.toString()
}
문제2
function solution(num_list) {
const so = num_list.sort((a,b) => a-b)
return so.slice(5)
}
배열을 오름차순 정렬한다음 가장작은수 5개를 제외하고 전부이니
인덱스 5~ 끝까지 slice했다
문제3
function solution(a, b) {
if(a%2=== 1 && b%2===1){
return Math.pow(a,2) + Math.pow(b,2)
}else if(a%2 ===1 || b%2 ===1){
return 2 * (a+b)
}else if(a%2===0 && b%2===0){
return Math.abs(a-b)
}
}
** Math.pow는 인수가 두개 필요해ㅐㅐㅐㅐㅐㅐ
문제4
첫 시도
function solution(myString) {
const temp = myString.split('x')
return temp.split('').sort((a,b) => a-b)
}
이미 temp가["a", "b", "c",...] 이렇게 되어있는데 split을 한번 더 썼다ㅋㅋㅋ
그리고 빈 문자열은 배열에 넣지않는다!!
만약 문자열의 마지막이 x로 끝난다면 빈 문자열이 배열에 들어간다.
let myString = "axbxcxdx"
myString.split("x") // ["a", "b", "c", "d", ""]
그래서 split 하고난 다음 마지막 요소가 "" 라면 pop() 으로 제거해준다.
그리고 사전순으로 정렬이니까 모든 문자열까지 비교할 필요없이 sort()만 해줬다.
수정한 두번째 답
function solution(myString) {
const temp = myString.split('x')
if(temp[temp.length-1] === ""){
temp.pop()
}
return temp.sort()
}
는 중간에 빈 문자열이 요소로 들어갈 경우 제거를 안해줬다. 중간에 xx이렇게 연속으로 들어갈 경우...
수정한 세번째 답
function solution(myString) {
const temp = myString.split('x')
return temp.filter((item)=> item.length > 0).sort()
}
문제5
첫번째 시도
function solution(board, k) {
var answer = 0;
for(let i=0; i <board.length; i++){
for(let j=0; j<board.length; j++){
if(i+j <= k){
answer += board[i][j]
}
}
}
return answer;
}
테스트 케이스만 통과하고 제출했을때 테스트 케이스에선 거의다 틀렸다ㅋㅋㅋ
왜일까....
* 이중 루프문의 조건이 잘못 되었다.
j < board.length 조건이 문제 ...!!!
board가 2차원 정수 배열 인것을 유의해야한다.
i의 조건으로 준 board.length 은 행의 수 이고 각 행의 열의 개수는 board[i].length로 따로 체크해야한다...
어쩐지...ㅠ 입출력 예시로 각 인덱스 길이가 다르더라...
두번째 수정 답안
function solution(board, k) {
var answer = 0;
for(let i=0; i <board.length; i++){
for(let j=0; j<board[i].length; j++){
if(i+j <= k){
answer += board[i][j]
}
}
}
return answer;
}
역시... 문제를 많이 풀어서 체득화하는게 답인가보다ㅠ
728x90
'JS 코테' 카테고리의 다른 글
<Javascript-CT> 기초 DAY 26 (0) | 2025.05.12 |
---|---|
<Javascript-CT> 기초 DAY 25 (0) | 2025.05.12 |
<Javascript-CT> 기초 DAY 22 (0) | 2025.05.11 |
<Javascript-CT> 기초 DAY 21 (0) | 2025.05.09 |
<Javascript-CT> 기초 DAY 19 (0) | 2025.05.08 |