2022.05.14 TIL

E__ppo·2022년 5월 13일
0

cote

목록 보기
2/5
post-custom-banner

12.부족한 금액 계산하기

function solution(p, m, c) {
    let total=Array(c).fill(p).map((v,i) => p+(p*i))
    const smoney = total.reduce((accumulator, currentNumber) 
    			=> accumulator + currentNumber)
    answer = smoney-m
    if(answer<0){
        answer=0
    }
    
    return answer
}

엄마 나 11점 받아쪄 엉엉 역사적인 순간을 기록해야지
어떻게든 for문 안써보려고 발악했는데 성공해땨
fill().map도 쓰고 reduce도 썼다
나 장해 채고야

13. 2016년

function solution(month, day) {
    
    let months = [31, 29,31,30,31,30,31,31,30,31,30,31]
    let weeks = ["THU","FRI","SAT","SUN","MON","TUE","WED"]
    
    let totaldays = months.slice(month-1).reduce((accumulator, currentNumber) => accumulator + currentNumber)
let condays = ((366-(totaldays))+day)%7
   
    return weeks[condays]
}

그지가튼 날짜 진짜... 열받게 하고이써...

우선 내가 세운 알고리즘은 받은 날짜 month를 기준으로 month-1 부터 배열의 끝까지 값을 다 더해줬다. 그 다음에 366에서 뺐음
0부터 month-1까지 가려고 했는데 1월달에 0이 들어가면서 null 값으로 런타임 오류가 발생돼서 대체방법으로....

1월 1일이 금요일, 일수를 %7한 나머지가 순서대로 1 목 / 2 금 / 3토 ..... 0수
이렇게 돌아가서 위크 배열을 만든 다음에 나머지값으로 인덱스를 넣어 문자열은 추출했다.

몰라.. 난 이게 한계야.. 왠지 다른사람 코드보면 더 자괴감 들거같다...
잘했다 나... 고생했땨 나...

14. 나누어 떨어지는 숫자 배열

function solution(arr, divisor) {
    var answer = [];
    
    for(i=0; i<arr.length; i++){
        if(arr[i]%divisor === 0){
            answer.push(arr[i])
        }
    }

    if(answer.length === 0)
    {
        answer.push(-1)
    }

    answer.sort((a,b) => a-b)
    
    return answer;
}

창피한데 이 이상 생각할 수 없었따...
우선 코드짜면서 배운 것

answer=[] 값을 확인하는 방법을 몰라서 한참 헤맸다....
Null도 아니고, undefiend으로도 비교할 수 없어서 배열의 길이로 비교했더니 바로 나왔다.
아이고 두야

answer.length < 1 ? [-1] : answer.sort((a, b) => a - b);

아직 이런 표현들이 낯선거 같다... 훨씬 깔끔하고 예쁜 것 같다.

arr.map((o) => {
	o % divisor === 0 && answer.push(o);
})

맵을 진짜 기깔나게 쓰고싶은데 난 왜 이런생각이 안났지 ㅠㅠ
영원한 for문의 노예야

15. 내적

function solution(a, b) {
    return a.reduce((c,n,i) =>  c+= a[i]*b[i],0)
}

16. 문자열 내 p와 y의 개수

function solution(s){
    
    s= s.toLowerCase()
  
    return  s.split('y').length - 1 === s.split('p').length - 1
}
return s.match(/p/ig).length == s.match(/y/ig).length;

17.문자열 다루기 기본

function solution(s) {
    if(!(s.length===4 || s.length===6)){
        return false
    } else{
        for(let i=0; i<s.length; i++){
            if(isNaN(Number(s[i]))) return false
        }
        
    }
    return true
}

18. 서울에서 김서방 찾기

function solution(seoul) {
    let answer = '';
 
    answer = seoul.findIndex(v => v==="Kim")
    answer = "김서방은 "+answer+"에 있다"
    
    return answer
}

어...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

var idx = seoul.indexOf('Kim');

19. 수박수박수박수박수박수?

function solution(n) {
    let answer="";
    
    for(i=1; i<n+1; i++){
        if(i%2==0){
            answer+="박"
        }else answer+="수"
    }    
    return answer
}
const waterMelon = n => {
    return '수박'.repeat(n/2) + (n%2 === 1 ? '수' : '');
}

20. 완주하지 못한 선수

function solution(participant, completion) {
    let partsort = participant.sort()
    let compsort = completion.sort()
    for(i=0; i<partsort.length; i++){
        if(partsort[i] !== compsort[i]){
            return partsort[i]           
        }
    }
}
post-custom-banner

0개의 댓글