[프로그래머스 Lv.0] 가까운 수, 369게임, 암호 해독, 대문자와 소문자

blockzzie·2023년 4월 21일
0

프로그래머스

목록 보기
44/52

가까운 수

나의 답

function solution(array, n) {
    array.sort((a,b) => a-b);
    var answer = array.map(x => Math.abs(x-n)) 
    return array.find(a => Math.abs(a-n) === answer[0])
}

나는 나머지 연산 ... 쓰는 것에 익숙하지 않다. 완전히 이해를 못한 것 같아서 활용을 못하는 듯 하다. 삼항 연산자도 익숙해지고 싶다.

369 게임

나의 답

function solution(order) {
    var answer = 0;
    var ord = order.toString()
    for(i=0; i<ord.length; i++){
        if(ord[i] == 3 || ord[i] == 6 || ord[i] == 9) {
            answer ++;
        }
    }
    return answer
}

number는 index가 사용 불가한지 몰랐어요. number[0] 안돼. 다른 분은 ...order.toString() 한 뒤 matchAll로 정규표현식 모두 있는 걸 추출

  • 숫자 -> 문자: 숫자 + '' 하면 문자열로
  • 문자 -> 숫자: Number(str)

암호 해독

나의 답

function solution(cipher, code) {
    var answer = '';
    for(i=1; i<=(cipher.length/code); i++){
        answer += cipher[code * i -1]
    }
        return answer;
}

남들 다 i+= code 할 때, 길이에 나누기 code한 나

대문자와 소문자

나의 답

function solution(my_string) {
    var regexp = /[a-z]/g;
    var answer = '';
    for(i=0; i<my_string.length; i++) {
        if(my_string[i].match(regexp)) {
            answer += my_string[i].toUpperCase()
        } else answer += my_string[i].toLowerCase()
    }
 return answer
}

나는 string을 match를 이용해 정규표현식과 같은걸 for문으로 하나하나 확인했다. 삼항 연산자를 쓰고싶은데 쓸 수 있을 것 같은데 어떻게 작성해야할지 syntax 오류가 나서 결국 저렇게 했지만 다른 사람 답은 split('')해서 map을 사용하는 경우 / Array.from()을 사용해서 map을 사용한 경우도 있었다.

profile
막무가내 코딩노트

0개의 댓글