-
✔️ 학습 범위
- 웹개발 종합반 복습
- 유튜브 to-do 리스트 만들기 강의 3개 (가볍게 시청만)
- JavaScript 문법 종합반 1주차 (+ 프로그래머스 2문제)
📄 오늘 공부한 내용
문제1 | 프로그래머스 > 연습문제 > 문자열 내 p와 y의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/12916
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교 해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나 도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별 하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
제한사항
- 문자열 s의 길이 : 50 이하의 자연수
- 문자열 s는 알파벳으로만 이루어져 있습니다.
나의 풀이
function solution(s){ var answer = true; let sum_p = 0; let sum_y = 0; let alphabet = s.split(""); // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. // console.log(alphabet) alphabet.forEach((a) => { if(a == 'p' || a == 'P') { sum_p+=1; } else if(a== 'y' || a == 'Y') { sum_y+=1; } }) if(sum_p == sum_y) { answer = true; } else { answer = false; } // console.log(sum_p, sum_y) return answer; }
[웹개발 종합반] 강의에서 배웠던
forEach
가 [JS문법 종합반] 강의에서도 나와서 반가운 마음에 꼭 사용해보고 싶었다.문제2 | 프로그래머스 > 월간 코드 챌린지 시즌2 > 음양 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/76501
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다. - absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다. - signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음 수임을 의미합니다.
나의 풀이
function solution(absolutes, signs) { var answer = 0; for(i=0; i<absolutes.length; i++) { if(signs[i] == true) { answer += absolutes[i] } else { answer -= absolutes[i] } } return answer; }
길이를 줄일 수 있을 것 같아서 다시 작성해 보았다.
function solution(absolutes, signs) { var answer = 0; for(i=0; i<absolutes.length; i++) { (signs[i]) ? answer += absolutes[i] : answer -= absolutes[i] } return answer; }
다른 사람의 풀이
function solution(absolutes, signs) { return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0); }
현재 값에 1 또는 -1을 더해주는 것이 인상적이다. (나중에 사용해 봐야지.. 메모 메모 !)
reduce()
메서드를 사용했는데, 내가 잘 모르는 것이라 추가적으로 공부했다.https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
Array.prototype.reduce() - JavaScript | MDN
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
developer.mozilla.org
☁️ 노트
5월 21일 일요일, 항해99에 합류하게 되었다. 자소서 작성 > 지원 > 인터뷰 > 합격 > 결제까지 모든 등록 과정이 하루 안에 이루어졌다. 이튿날인 월요일에 별다른 연락이 없어서 '부트캠프는 스스로 학습하는 곳이니까 할 일을 스스로 찾아야겠다 !'라며, 반짝이는 눈으로 스파르타코딩클럽에 접속해보니, 역시나 ! [웹개발 종합반] 강의가 있길래 며칠 동안 완강하였다. 그리고 26일에 연락이 왔는데... 나도 모르는 사이에 이미 사전 교육이 이루어지고 있다는 것이다 ㅇㅅㅇ; 카톡 안내를 했다는데 나는 받은 게 없었다. 생각해보니 예전에 과도한 광고 때문에 차단했던 것. 하지만 그동안 강의를 열심히 들었으니 아무것도 안 한 것보단 났다는 생각이 들었다. (전화해볼걸...ㅎㅎ)
[웹개발 종합반] 강의 내용이 곧 입학시험이라는 공지가 있어서 부랴부랴 복습을 했다. 따라서 할 땐 쉬운데, 혼자하면 꼭 코드를 하나씩 빠뜨리곤 한다. 오늘 복습하면서는 함수의 매개변수를 빠뜨리고는 실행이 되지 않자, 다른 곳에 문제가 있나 한참을 고민했다.
새롭게 시작한 [JS문법 종합반] 강의는 1주차 마지막에 문제를 내주었다. 프로그래머스에서 제출 후 다른 분들의 코드를 보니, 초라한 내 코드..ㅎㅅㅎ 열심히 배우겠습니다 !
'Dev.log' 카테고리의 다른 글
TIL: 일어나 코딩해야지 (1) 2023.06.05 TIL: me.replaceAll(badRoutine, goodRoutine) (1) 2023.06.03 TIL: 알고리즘 스터디 시작 (0) 2023.06.02 TIL: 복습 또 복습 (0) 2023.06.01 TIL: 그동안 소홀했던 JS이론 끝부분을 마주했다 (1) 2023.05.30 댓글