Programmers

Programmers 문제 풀이 14

백단비 2023. 4. 6. 14:58

문제 설명 : 옷가게 할인받기

옷가게는 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

 

320x100

'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