728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/1845?language=javascript 

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr

 

코드


function solution(nums) {
    let num = nums.length/2; //num개만큼 가져갈 수 있음
    const set = new Set(nums);
    return set.size >= num ? num : set.size;
}

 

후기


  • 가장 많은 종류를 담을 수 있을 때, 그 종류의 개수를 return하는 문제였다
  • 다른 분의 풀이를 보니, const array = [...new Set(nums)] 처럼 set을 바로 배열화 시킬수도 있단 것을 알게 되었다. 이렇게 사용하면 set.size대신 우리에게 익숙한 array.length로 사용하면 되겠더라!
728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/82612?language=javascript 

 

코딩테스트 연습 - 부족한 금액 계산하기

새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이

programmers.co.kr

 

코드


function solution(price, money, count) {
    let need = 0; //필요한 돈
    for (let i=1; i<=count; i++) need += price * i;
    return (need > money) ? (need - money) : 0;
}

 

후기


  • 처음에 문제이해를 잘못해서 한 번에 통과를 못했다. 돈이 모자르지 않으면 0을 return하는 것이었는데 나는 돈이 딱 맞아떨어질 때만 0을 return한다고 생각해서 돈이 남는 경우에 대해서는 처리해주지 못해서 히든 테스트케이스 4번에서 막혔었다. 다들 참고하세요!
728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/12922

 

코딩테스트 연습 - 수박수박수박수박수박수?

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한

programmers.co.kr

 

코드


function solution(n) {
    return (n % 2 === 0) ? ("수박").repeat(n/2) : ("수박").repeat(n/2)+"수";
}

 

후기


  • n이 홀수일 때는 "수박" + "수" 의 형태이고, 짝수일 때는 "수박"의 형태라는 규칙을 찾고 삼항 연산자를 이용하여 풀이를 해보았다
728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/68935

 

코딩테스트 연습 - 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수

programmers.co.kr

 

코드


function solution(n) {
    return parseInt(n.toString(3).split('').reverse().join(''), 3);
}

 

후기


  • 이 때까지 배운 것을 토대로 한 줄 풀이를 해보았다!
  • 이 문제를 한 줄 풀이하기 위해서는 알아야 할 것이 두 가지 있었다
  • 10진수 -> n진수 : 변환할 수.toString(n);
  • n진수 -> 10진수 : parseInt(변환할 수, n); >> 변환할 수를 n진수로 판단하고 parseInt() 함수를 통해 10진수로 변환하게 됨
  • 평소에 toString, parseInt 함수를 자주 사용했는데 이렇게 간편하게 n진수로 변환해준다는 것은 처음 알았다..!

+ Recent posts