연습장

19. 조건 문자열 본문

프로그래머스/0단계

19. 조건 문자열

js0616 2023. 6. 19. 20:59

Q . 문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.

 

두 수가 n과 m이라면
">", "=" : n >= m
"<", "=" : n <= m
">", "!" : n > m
"<", "!" : n < m


두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.

 

제한사항

1 ≤ n, m ≤ 100


 

쉬운 방법이 없을까 고민을 하다가 결국 다 적었다.

 

1.  ineq == "<" && eq == "="

2.  ineq == "<" && eq == "!"

3.  ineq == ">" && eq == "="

4.  ineq == ">" && eq == "!" 

 

총 4가지 경우에 대해 다 진행 하여 코드가 길어졌다. 


function solution(ineq, eq, n, m) {
    var answer = 0;
    
    if ( ineq == "<" && eq == "=") {
        if (n <= m) {
            answer = 1
        }
    }
    else if ( ineq == "<" && eq == "!") {
        if (n < m) {
            answer = 1
        }
    }
    else if ( ineq == ">" && eq == "=") {
        if (n >= m) {
            answer = 1
        }
    }
    
    else {
        if (n > m) {
            answer = 1
        }
    }
    
    return answer;
}


다른사람풀이

function solution(ineq, eq, n, m) {
    if (eq === '=' && n === m) return 1
    if (ineq === '<' && n < m) return 1
    if (ineq === '>' && n > m) return 1
    return 0
}

 

eq // = , ! 인데  = 일때, n 과 m 이 같으면 ... 1

ineq // > , <  인데  < 일때 n < m 이면 ... 1

ineq // > , <  인데  > 일때 n > m 이면 ... 1

나머지 0 

 

모든경우의 조건에 집중한 나머지 나의 풀이가 더 길어진것 같다.

주어진 조건에 대해서 좀 더 유연한 사고방식이 필요하다고 생각된다.

'프로그래머스 > 0단계' 카테고리의 다른 글

21. 코드 처리하기  (0) 2023.06.19
20. flag에 따라 다른 값 반환하기  (0) 2023.06.19
18. 홀짝에 따라 다른 값 반환하기  (0) 2023.06.19
17. 공배수  (0) 2023.06.19
16. n의 배수  (0) 2023.06.19