4월 18일 알고리즘
하루에 하나씩 풀어보려고 한다.. 일단 1단계부터
쉬운 문제의 경우 하루에 2개 이상씩 풀자!
1.프로그래머스 1단계 수박수박수박수박수박수?
n이 4이면 "수박수박"을 리턴
n이 3이면 "수박수"를 리턴
=> n이 2의 배수일 경우 온전한 "수박"이 n을 2로 나누었을 때 만큼 반복
=> n이 2의 배수가 아닐 경우 "수박"을 n을 2로 나누었을 때 만큼 반복한 후에 "수"가 한번 붙는다.
내가 쓴 답압!!
function solution(n) {
return n %2 === 0?
"수박".repeat(n/2):
"수박".repeat(n/2)+"수"
}
String.prototype.repeat()
repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.
=> str.repeat(count);
2.정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
function solution(arr) {
let sum = 0
for(let i =0; i< arr.length; i++){
sum += arr[i]
}
return sum / arr.length
}
이렇게 해서 문제는 통과했는데 다른 사람 풀이를 보니 reduce라는 간단한 방법이?!
reduce를 배웠었고 활용하여 문제도 풀었었는데 전혀 생각도 못했다..
function average(array){
return array.reduce((a, b) => a + b) / array.length;
}
이렇게 한줄로 나올 수 있는 코드였는데 for문을 다 돌렸던거였네...
오늘도 하나 배워갑니다
- 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
function solution(num) {
if(num % 2 ===0){
return "Even"
}else {
return "Odd"
}
}
3항연산자 사용하면 한줄로 가능!
function evenOrOdd(num) {
return num % 2 ? "Odd" : "Even";
}
- 서울에서 김서방 찾기
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
function solution(seoul) {
let key = 0
for(let i = 0 ; i< seoul.length; i++){
if (seoul[i]==="Kim"){
key = i
}
}
return `김서방은 ${key}에 있다`
}
이렇게 풀었는데... 다른 사람들 풀이를 보니 indexOf를 사용... 훨씬 간단하게 풀 수 있는 문제를...
var idx = seoul.indexOf('Kim');
return "김서방은 " + idx + "에 있다";
}
오늘의 복습포인트!!
1. reduce
2. indexOf
Author And Source
이 문제에 관하여(4월 18일 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeongmin1625/4월-18일-알고리즘저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)