TIL: 항해99 15기 시작
✔️ 학습 범위
- 웹개발 종합반 복습
- 유튜브 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주차 마지막에 문제를 내주었다. 프로그래머스에서 제출 후 다른 분들의 코드를 보니, 초라한 내 코드..ㅎㅅㅎ 열심히 배우겠습니다 !