1. 가운데 글자 가져오기

 

s.length 가 짝수인 경우와

s.length 가 홀수인 경우를 구분해서 어찌 저찌 하면 될듯하다

function solution(s) {
    var sl = Math.floor(s.length/2)
    return s.length % 2 == 0 ? s[sl-1]+s[sl] : s[sl];
}

그다지 어려운 문제가 아니었으므로 자세한 내용은 생략한다

슬슬

홀수 짝수를 %2 =0  으로 구분하는것이 뭔가 좀 아쉽긴한데..

 

 

 

2. 수박수박수박...

가장 먼저 생각난 방법은

for문으로 n 까지 홀수짝수로 반복을 하면 될듯 하다

 

function solution(n) {
    var answer = '';
    for( var i = 0; i < n; i++) {
        answer = i % 2 == 0? answer + "수" : answer+"박" ;
    }
    return answer;
}

뭔가... 아쉬운 코드

 

 

일단 새로운 함수

.repeat 을 배워왔다

string.repeat() 은 () 안의 횟수만큼 stirng 을 반복하여 출력해주는 함수이다.

단순히 string을 여러번 반복해야할 경우 for 문을 사용하지 않아도 된다.

function solution(n) {
    var answer = '';
    answer = n % 2 == 0 ? "수박".repeat(n/2) : "수박".repeat(Math.floor(n/2))+"수"
    return answer;
}

 

좀 그럴싸 해지긴 했지만 역시  % 2 ==0  의 늪에선 빠져 나올순 없다

 

 

 

3. 내 적 

 

내적이 뭘까

 

my enemy 인가

 

정의를 찾아봐도 무슨 말인지 알 수가 없다

 

 

 

아무튼간에 같은 인덱스 끼리 곱하고 나온걸 다 합해주면 된다고 한다..

수학이 필요하다면 배워야겠지만 이건 논외인것 같다.

function solution(a, b) {
    var answer = 0;
    for(let i = 0; i < a.length; i++) {
        answer += a[i] * b[i];
    }
    return answer;
}

 

모든 배열 순회 이기 때문에

for ( var i in a) {} 또한 사용할 수 있다.

a의 인덱스인 0 1 2 3이 i 에 들어가며 반복된다

 

4. 약수의 개수와 덧셈

 

오늘..

풀이가 좀 수월했던 관계로 한문제 더  풀려고 했는데 불안한 녀석이 걸렸다.

 

아는방법대로 하면 분명 괴짜 코드가 나올것 같은 예감이 들지만

 

일단 해보는 수밖에 없다

function solution(left, right) {
    var answer = 0; 
    let ia = 0; // 약수의 개수를 카운트할 임의 변수
    for( var i = left; i <= right ; i++ ) { // left ~ right 까지의 연산이 필요
        for( var j = 1; j <= i; j++) {   // left부터 약수의 숫자를 구한다
            if(i % j == 0) { ia += 1 ;}  // 약수로 나눈경우 ia 를 +1 
        }
        answer = ia % 2 == 0 ? answer + i : answer - i // ia 가 홀수 짝수일 때 각각 -i +i 연산
        ia = 0; // ia 카운트 초기화
    }
    return answer
}

 

약수의 개수를 카운트할 ia 변수를 만들어 주고

for문 2개를 돌려서

left (i) 의 약수의 숫자를 구하고 그 갯수가 홀수일때와 짝수일 때  + - 연산을 해준뒤 임의로 ia를 초기화

left (i) 를 1씩 늘려가며 i == right 까지 반복 하는 !!

 

작동이 잘 되다니 오히려 놀랐다 

' 그래도 모자란 코드'  라는 생각과 '뿌듯함'   이 교차한다

 

 

 

 

 

'사전캠프' 카테고리의 다른 글

27일차 - 알고리즘 풀이  (0) 2024.07.29
26일차 - 알고리즘 풀이  (0) 2024.07.25
24일차 - 알고리즘 풀이  (1) 2024.07.23
23일차 - 알고리즘 풀이  (3) 2024.07.22
22일차 - 알고리즘 풀이  (0) 2024.07.19

+ Recent posts