코딩테스트 맨땅에 헤딩하기

Parktaehoon·2022년 10월 9일
0

Q1. 문자열 정렬하기 (2)

영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.

소문자 toLowerCase 로 바꾸고, split("") 메서드를 통해 배열에 하나씩 차곡 차곡 담는다.
다음 sort 메서드를 활용하여 순서대로 나열하고 join 을 활용해서 다시 string으로 바꾼다!

function solution(my_string) {
    return my_string.toLowerCase().split('').sort().join('');
}

Q2. 각도기

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

내가 생각한 코드

function solution(angle) {
    if(0 < angle < 90 ){
        return 1;
    } else if(angle === 90 ){
        return 2;
    } else if(90 < angle < 180){
        return 3 
    } else {
        return 4
    }
}

정답이 아니였다.
여기서 논리연산자에대해서 다시 생각해 볼 수 있었는데, 좀 더 정확한 조건을 주기위해서
&& // 모두가 true인 경우에만 true 반환
|| // 둘 중 하나가 true 라도 true 반환 을 이용해서 풀어볼 수 있었다 .

function solution(angle) {
    if( 0 < angle && angle < 90){
        return 1
    } else if(angle === 90){
        return 2
    } else if (90 < angle && angle < 180){
        return 3
    } else if (angle === 180){
        return 4
    }
}

위와 같은 코드로 진행 할 수 있었다.

Q3. 다시 또 한번 filter 메서드에 대해서 공부해보자

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

나의 코드
function solution(array, n){
retrun array.filter(item => item === n).length
}

Q4.
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

나의 코드

function solution(n) {
    var answer = 0;
    let string = n.toString();
    let string_split = string.split("");
    for(let i = 0; i < string_split.length; i++){
        answer += parsInt(string_split[i])
    }
   	return answer;
}

정답이 아니더라..ㅎ

다른 사람들의 정답 코드를 구글링하여 보니

function solution(n){
    var answer = 0;    
    var m=String(n);    
    for(var i=0; i<m.length; i++){
    	answer+=parseInt(m[i]);    
   	}
	return answer;
   }

String 이나 toString 이나 똑같은 의미인줄 알고 있는데 계속 안되던데, vs code에서 보니 parsInt가 오타가 있었다..!!
다시 한번 오타를 잘 잡아보아야겠따!!

profile
스스로 공부하는 내용 정리합니다.

0개의 댓글