JavaScript - 프로그래머스 레벨 : 0(12) - ORDER BY '정답률'

먹보·2022년 12월 26일
0

1. 외계어 사전

문제 : PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요.

function solution(spell, dic) {
    let answer;
    let word = spell.sort().join('');
    const arr =[];
    for (let i of dic){
        if(i.split('').sort().join('') == word){
            arr.push(i)
        }
    }
    if (arr.length > 0){
        return answer = 1
    } else {return answer = 2}
}

🗒️코멘트 : NULL

2. 캐릭터의 좌표

문제 : 머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.

function solution(keyinput, board) {
    let x = 0;
    let y = 0;
    
    let xEnd = Math.floor(board[0] / 2);
    let yEnd = Math.floor(board[1] / 2);
    
    for (let i = 0; i < keyinput.length; i ++ ) {
        if (keyinput[i] === "right" && x + 1 < xEnd) x++ 
        if (keyinput[i] === "left" && x - 1 > -xEnd) x-- 
        if (keyinput[i] === "up" && y + 1 < yEnd) y++
        if (keyinput[i] === "down" && y - 1 > -yEnd) y--
    }
    return [x, y]
}    

🗒️코멘트 : 처음에는 객체를 선언 후, 객체 내에 up : [0,1]이런 식으로 담아 진행하려 했으나 코드가 너무 복잡해져서 객체 선언을 하지 않고 진행하는 방법을 생각해보다 차라리 if문을 여러개 써서 특정 키워드 시 하나 씩 증가하도록 설정하였다.

3. 컨트롤 제트

문제 : 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.

function solution(s) {
    let answer = 0;
    const sArr = s.split(' ')

    for (let i = 0 ; i<sArr.length ; i++){
        if (sArr[i] === 'Z'){
            answer -= Number(sArr[(i-1)])
        } else {answer += Number(sArr[i])}
    }
    return answer
}

🗒️코멘트 : NULL

profile
🍖먹은 만큼 성장하는 개발자👩‍💻

0개의 댓글