문제 설명 : 옷가게 할인받기
옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해 준다
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하는 solution 함수?
제한 사항
- 10 ≤ price ≤ 1,000,000
- price는 10원 단위로(1의 자리가 0) 주어짐
- 소수점 이하를 버린 정수를 return 합니다.
입출력 예
price | result |
150,000 | 142,500 |
580,000 | 464,000 |
function solution(price) {
var answer = 0;
const dis_5 = price * (1 - 0.05) // 원래가격에서 할인된 가격을 빼는 식
const dis_10 = price * (1 - 0.1)
const dis_20 = price * (1 - 0.2)
answer =
price >= 500000 ? dis_20 : price >= 300000 ? dis_10 : price >= 100000 ? dis_5 : price;
// if대신 삼항연산자로 길게 이어감 가독성이 안좋으면 그냥 if문으로 바꿔도 됨
return Math.floor(answer);
// 소수점 이하의 것을 버리기 위해 math.floor를 사용
}
문제 설명 : 배열 두 배 만들기
정수 배열 numbers가 있을 때, numbers의 각 원소에 두배한 원소를 가진 배열을 return 하는 solution 함수?
제한 사항
- -10,000 ≤ numbers의 원소 ≤ 10,000
- 1 ≤ numbers의 길이 ≤ 1,000
입출력 예
numbers | result |
[1,2,3,4,5] | [2,4,6,8,10] |
[1,2,100,-99,1,2,3] | [2,4,200,-198,2,4,6] |
function solution(numbers) {
var answer = [];
for (i = 0; i < numbers.length; i++) {
answer[i] = numbers[i] * 2;
}
return answer;
}
저는 for loop 중독자 인지 자꾸 문제만 보면 for를 사용하게 되는데요...
map으로 쓰면 한 줄이면 끝납니다. return numbers.map( v => v *2);
문제 풀이 : 모음 제거
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류한다.
문자열 my_string에서 모음을 제거한 문자열을 return 하는 solution 함수?
제한 사항
- my_string은 소문자와 공백으로 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
입출력 예
my_string | result |
"bus" | "bs" |
"nice to meet you" | "nc t mt y" |
function solution(my_string) {
let str = my_string.replaceAll('a','');
str = str.replaceAll('e','');
str = str.replaceAll('i','');
str = str.replaceAll('o','');
return str.replaceAll('u','')
}
처음에는 거의 노가다식으로 풀었습니다. my_string에 모든 모음을 지워줬어요.
근데 정규 표현식이라는 게 있더라고요?
정규 표현식 - JavaScript | MDN
정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다. JavaScript에서는 정규 표현식도 객체로서, RegExp의 exec()와 test() 메서드를 사용할 수 있습니다. String의 match(), matchA
developer.mozilla.org
그래서 정규 표현식으로 풀어보니 한 줄 컷.이었습니다
function solution(my_string) {
return my_string.replace(/[aeiou]/g,'')
}
정규 표현식은 나중에 정리해서 올릴 예정입니다. 지금은 MDN문서를 확인해 주세요!
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Programmers' 카테고리의 다른 글
Programmers 문제 풀이 16 (0) | 2023.04.10 |
---|---|
Programmers 문제 풀이 15 (0) | 2023.04.07 |
Programmers 문제 풀이 13 (0) | 2023.04.05 |
Programmers 문제 풀이 12 (0) | 2023.04.04 |
Programmers 문제 풀이 11 (0) | 2023.04.03 |