<오늘의 문제>
- 아이스 아메리카노
- 자릿수 더하기
- 옷가게 할인 받기
1. 아이스 아메리카노
function solution(money) {
var answer = [];
answer = [Math.floor(money / 5500), (money % 5500)]
return answer;
}
- 나의 풀이
: answer의 배열값엔 [아메리카노 수, 남은돈] 이 들어오므로, 매우매우 간단한 문제였다.
소숫점은 버려야하므로 Math.floor 사용
function solution(money) {
var answer = [0, 0];
answer[0] = Math.floor(money / 5500),
answer[1] = money - (5500 * answer[0])
return answer;
}
- 나의 다른 풀이
: 기본 answer 값에 인덱스을 초기화값으로 집어넣고, 각각의 인덱스 0과 1값에 맞춰서 풀이하였다.
2. 자릿수 더하기
function solution(n) {
var answer = 0;
answer = n.toString().split('').reduce((acc, cur) => acc + cur * 1, 0)
return answer
}
- 나의 풀이
: toString으로 문자열 변환뒤, split으로 하나하나뽑아준 요소를, reduce로 전부 더한 뒤 1 를해서 숫자형으로 변환한다.
처음엔 별 생각없이 1은 하지않고 마지막 return paseInt(answer) 로 입력했는데 당연히 안됬다 ㅋ;
function solution(n) {
const answer = 0;
const sum = n.toString();
for ( let i = 0; i < sum.length; i++) {
answer += parseInt(sum[i]);
}
return answer;
}
- 나의 다른 풀이
: 문자형으로 변환한 값을 sum으로 새롭게 지정해주고, 각각의 인덱스값을 숫자형으로 변환해서 더해주었다.
3. 옷가게 할인 받기
function solution(price) {
var answer = 0;
if(price >= 100000 && price < 300000) {
answer = price * 0.95
} else if (price >= 300000 && price < 500000) {
answer = price * 0.9
} else if (price >= 500000) {
answer = price * 0.8
} else {
answer = price
}
return parseInt(answer);
}
- 나의 풀이
: 풀면서 이렇게 푸는게 맞는걸까 싶었는데 풀리긴해서 ㅠ 뭔가 else if 가 길어지면 부끄럽다...
function solution(price) {
if (price >= 500000) {
return Math.floor(price * 0.8)
} else if (price >= 300000) {
return Math.floor(price * 0.9)
} else if (price >= 100000) {
return Math.floor(price * 0.95)
} else return price
}
- 다른 사람 풀이
: 일단 조건이 큰값을 먼저 작성해서 코딩을 내 풀이보다 간결하게 작성하여서 가져왔다.