(TIL) 20210527

2021. 5. 27. 23:13TIL(Today I learned)

반응형

1.Facts(한 것)


  • 짝 프로그래밍
  • 학교 수업 듣기
  • C++, 자바스크립트로 프로그래머스 문제 풀기
  • 알고리즘 수업 듣기

2.Findings(배운 것)


DFS와 BFS에 대해서 배웠다.

(자료구조에서 배운 내용이라서 새로울 것은 없었지만, 그때와 다른 점은 나의 코딩 실력...)

 

javascript에서 join() 함수를 사용 보았다.

join함수는 배열에 있는 값들을 문자열로 변환시켜주는 함수이다.

이를 C++에서 똑같이 적용시키려면 to_string함수를 통해서 하나하나 바꿔주거나

map을 사용해서 바꾸는 방식을 사용해야 하는데

javascript에서는 함수 하나만으로 순회 및 변환이 가능해서 편했다.

 

javascript의 reduce() 함수 역시 편한 함수다.

아래는 같은 문제를 두 개의 방식으로 푼 코드이다.

 

/**
 * absolutes는 절대값, signs는 부호가 담겨 있는 배열.
 * 부호에 따라 answer와 연산후 리턴
 */
 
//reduce사용
function solution(absolutes, signs) {

    return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}

//reduce 미사용
function solution(absolutes, signs) {
    var answer = 0;
    for(let i = 0; i < absolutes.length; i++) {
        if(signs[i]) {
            answer += absolutes[i];
        } else {
            answer += absolutes[i] * -1;
        }
    }
    return answer;
}

이렇게 reduce를 사용하면 순회를 하면서 바로 누산이 가능하기 때문에 

두 번째 코드처럼 일일이 for문을 정의할 필요가 없어진다.

 

 

3.Feeling(느낀 점)


한 문제를 두 개의 언어로 풀다 보니, 문제를 보는 시각이 좀 더 넓어진다.

'자바스크립트에 있는 메서드를 C++에서는 어떻게 구현할까라?'라는 생각도 할 수 있고

여러모로 도움이 된다.

 

4.Affirmation(자기 선언)


  • 나는 매일 성장하는 개발자이다.
  • 나는 배우는 것을 즐기는 사람이다.
반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210529  (0) 2021.05.29
(TIL) 20210528  (0) 2021.05.28
(TIL) 20210526  (0) 2021.05.27
(TIL) 20210525  (0) 2021.05.26
(TIL) 20210524  (0) 2021.05.25