[프로그래머스 Lv.0] 숨어있는 숫자의 덧셈 (2), 삼각형의 완성조건 (2), 외계어 사전

blockzzie·2023년 5월 13일
0

프로그래머스

목록 보기
51/52

숨어있는 숫자의 덧셈 (2)

나의 답

function solution(my_string) {
    let result = 0
    for(let i = 0 ; i < my_string.length;i++) {
        // 이번 반복의 연속되는 숫자를 문자열로 취득
        let thisNum = ''
        while(!Number.isNaN(Number(my_string[i]))) {
            thisNum+= my_string[i]
            i++
        }
        // 문자가 온 경우 취득되었던 숫자를 Number형으로 변환 후 result에 더함
        result+= +thisNum
    }
    return result
}

한 자리 숫자는 괜찮았는데 두 자리는 어떻게해야할지 감이 안와서 다른 분 코드를 보았다. for문 안에 while문으로 뒤에도 숫자면 이어 붙이고 밖으로 나와서 더해주는 방식.. ㅇ0ㅇ Number.isNaN 이라는 표현도 알지 못했다.

삼각형의 완성조건 (2)

나의 답

function solution(sides) { 
   var count = 0;
    var max = Math.max(...sides)
    var min = Math.min(...sides) 
    for(let i = max-min+1 ; i <= max ; i ++) {
        count++
    }   
    for(let i = max+1 ; i < max+min ; i ++) {
        count++ 
    } 
    return count
}

삼각형 만드는 조건을 몰라서 덧셈 뺄셈하면서 구하다가 테스트 문제는 넘어갔는데 제출 문제들은 다 틀렸었다. max - min -1 렇게 하는 것 보다 뺀 다음 하나씩 숫자 더해 나가는게 맞다.

외계어 사전

나의 답

function solution(spell, dic) { 
    spell = spell.sort().join("")
return dic.map(a => a.split("").sort().join("")).find(a => a===spell) == undefined ? 2 : 1
}

남의 답

function solution(p, d) {
    return d.some(s => p.sort().toString() == [...s].sort().toString()) ? 1 : 2;
}

for of 로 푸는 법, forEach로 푸는 법, filter를 이용하는 법 등 다양한데
some을 사용하는 법이 가장 짧다. every 도 가능. 나의 답도 남의 답임

profile
막무가내 코딩노트

0개의 댓글