코딩테스트 #3

banhogu·2023년 5월 1일
0

조건문 풀이

문제


함수로 만들어서 쓰는구나..!


문제

블로그나 구글링 도움 안받고 직접 풀어봤다. 기본적인 시간 알고리즘이라 크게 어려움은 없었다. 다만 첫번째 (b<0 && a!==0)dptj a!==0를 안쓰니 a가0 이어도 계속 첫번째에 걸려 오류가 났었다.


문제


1. split를 사용해 input 요소에 접근하는법에 익숙해졌다.
2. 처음에 y===24라고 하니까 계속 오류나서 왜인지 생각해봤는데 25시 26시가 될 수 있으므로 24를 빼주니까 정답처리 됐다 굳.


저런식으로 인풋값을 map()를 사용해 받아올수도 있다네.


문제

const input = require('fs').readFileSync('index.txt').toString().trim().split(' ');
let x = parseInt(input[0])
let y = parseInt(input[1])
let z = parseInt(input[2])
function cal(a,b,c){
let price = 0;
let num = [a,b,c]
let max=num[0]
for(let i=0; i<3; i++){
if(max[i]>max){
max = max[i]
}
}
if(x===y && x ===z && y===z){
price = 10000+(x1000);
console.log(price)
}
else if(x===y&&x!==z){
price = 1000+(x
100);
console.log(price);
}
else if(x===z&&x!==y){
price = 1000+(x100);
console.log(price);
}
else if(y===z&&y!==x){
price = 1000+(y
100);
console.log(price);
}
else if(x!==y&&x!==z&&y!==z){
price = max*100
console.log(price)
}
}
cal(x,y,z)

풀긴 풀었고, 맞긴 맞았다. 물론 최적화된 알고리즘은 아니라고 생각했다. 하지만 이것보다 더 나은 방법이 생각이 안난다..ㅠㅠ


정답 코드

딱봐도 내 코드보다 훨신 짧다.
1. 불필요한 pirce라는 값과 식을 생략하고 한번에 콘솔로그로 출력
2. 최대값 찾을 때 최대값 찾기 알고리즘 사용하는것이 아니라 그냥 Math.max를 사용했다. 내가 js에 익숙치 않아서 이런 메소드가 있는지 몰랐다.
3. 조건식에 굳이 중복되는 표현을 사용해서 더 길어졌다.
4. 반성중

profile
@banhogu

0개의 댓글