1. 간단한 논리연산
// 조건부 연산: AND(&&), OR(||)
function solution(x1, x2, x3, x4) {
var answer = true;
var res1 = (x1 || x2)
var res2 = (x3 || x4)
answer = (res1 && res2)
return answer;
}
2. 주사위 게임 3
// case1: 1111 * p
// case2: Math.pow((10*p+q), 2)
// case3: (p+q) * Math.sqrt( Math.pow((p-q), 2) )
// case4: q*r
// case5: Math.min(a, b, c, d)
// ** Math.pow(n, m) -> n의 m승
// ** Math.sqrt(n) -> n의 제곱근
// ** Math.min() -> 최소값 구하기
function solution(a, b, c, d) {
var answer = 0;
if (a==b) {
if (a==c) {
if (a==d) {
// case 1
answer = 1111 * a
} else { // (a != d)
// case 2
answer = Math.pow((10*a+d), 2)
}
} else { // (a != c)
if (a==d) {
//case 2
answer = Math.pow((10*a+c), 2)
} else { // (a != d)
if (c==d) {
//case 3
answer = (a+c) * Math.sqrt(Math.pow((a-c), 2))
} else { // (c != d)
//case 4
answer = c*d
}
}
}
} else { // (a != b)
if (a==c) {
if (a==d) {
// case 2
answer = Math.pow((10*a+b), 2)
} else { // (a != d)
if (b==d) {
//case 3
answer = (a+b) * Math.sqrt(Math.pow((a-b), 2))
} else { // (b != d)
//case 4
answer = b*d
}
}
} else { // (a != c)
if (a==d) {
if (b==c) {
//case 3
answer = (a+b) * Math.sqrt(Math.pow((a-b), 2))
} else { // (b != c)
//case 4
answer = b*c
}
} else { // (a != d)
if (b==c) {
if (b==d) {
// case 2
answer = Math.pow((10*b+a), 2)
} else { // (b != d)
// case 4
answer = a*d
}
} else { // (b != c)
if (b==d) {
//case 4
answer = a*c
} else { // (b != d)
if (c==d) {
//case 4
answer = a*b;
} else { // (c != d)
//case 5
answer = Math.min(a, b, c, d);
}
}
}
}
}
}
return answer;
}
[로직]
1. a==b일 때
(1) a==b > a==c > a==d : case1
(2) a==b > a==c > a!=d : case2 (다른 값 d)
(3) a==b > a!=c > a==d : case2 (다른 값 c)
(4) a==b > a!=c > a!=d (무조건 b!=c, b!=d 성립) > c==d : case3 (a, c)
(5) a==b > a!=c > a!=d (무조건 b!=c, b!=d 성립) > c!=d : case4 (c, d)
2. a!=b일 때
(1) a!=b > a==c > a==d : case2 (다른 값 b)
(2) a!=b > a==c > a!=d (무조건 b!=c 성립) > b==d : case3 (a,b)
(3) a!=b > a==c > a!=d (무조건 b!=c 성립) > b!=d : case4 (b,d)
(4) a!=b > a!=c > a==d > b==c : case3 (a,b)
(5) a!=b > a!=c > a==d > b!=c : case4 (b,c)
(6) a!=b > a!=c > a==d > b==c > b==d > c==d : case2 (다른 값 a)
(7) a!=b > a!=c > a==d > b==c > b!=d > c!=d : case4 (a,d)
(8) a!=b > a!=c > a==d > b!=c > b==d > c!=d : case4 (a,c)
(9) a!=b > a!=c > a==d > b!=c > b!==d > c==d : case4 (a,b)
(10) a!=b > a!=c > a==d > b!=c > b!==d > c!=d : case5
'Algorithm > Javascript' 카테고리의 다른 글
[프로그래머스] 230714 코딩테스트 연습 (0) | 2023.07.14 |
---|---|
[프로그래머스] 230713 코딩테스트 연습 (0) | 2023.07.13 |
[프로그래머스] 230710 코딩테스트 연습 (0) | 2023.07.10 |
[프로그래머스] 230729 코딩테스트 연습 (0) | 2023.07.09 |
[프로그래머스] 230708 코딩테스트 연습 (0) | 2023.07.08 |
댓글