Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스 레벨0
- 알고리즘문제
- 프로그래머스 코딩테스트
- 프로그래머스코테
- js
- 정처기기출
- 알고리즘스터디
- 프로그래머스코딩테스트
- next.js
- 프로그래머스 코테
- mysql
- 알고리즘공부
- 프로그래밍
- 코테스터디
- Redux-Toolkit
- 프로그래머스 Lv.0
- 코딩테스트
- 1일1코테
- 정보처리기사
- 프로그래머스 알고리즘
- 개발자
- html
- next.js 에러
- CSS
- 코테준비
- 프로그래머스알고리즘
- 프로그래머스
- 자바스크립트
- 코테공부
- 코딩
Archives
- Today
- Total
계발하는 개발자
[프로그래머스/Lv.1] 추억 점수 본문
⚙️ 문제 설명
⚠️ 제한 사항
🔃 입출력
📜 입출력 예 설명
🧠 나의 풀이
function solution(name, yearning, photo) {
// 객체에 인물 이름과 그리움 점수 저장
const obj = {};
for (let x = 0; x < name.length; x++) {
obj[name[x]] = yearning[x];
}
// 결과 출력을 위한 배열 생성
const arr = [];
// 배열에 값 전송
for (const people of photo) {
let initNum = 0;
for (const person of people) {
initNum += obj[person] || 0;
}
arr.push(initNum);
}
return arr;
}
🧐 풀이 설명
name 배열 값에 따라 yearning 배열 값이 매칭되야 하므로 두 값을 객체 속성:값으로 만들어줬다.
그리고 출력된 결과를 배열 형태로 나타내야 하기 때문에 const arr = []; 빈 배열값을 가지는 상수 변수를 만들어주고, for문을 돌면서 객체 속성 값이 기존 값에 더해진 형태로 배열에 push 시켜줬다.
객체 처음 생성했을 당시에는 객체에 저장된 속성값이 빈값이므로 undefined가 나오기 때문에(false 처리)
initNum += obj[person] || 0 을 해줘서 해당 속성명을 찾을 수 없는 경우에는 처음에 0을 더하다가 for문을 돌고 난 후의 시점에 객체에 초기 속성값이 생성되니까 2번째로 해당 코드블럭을 만났을 때는 해당 속성값을 기존값에 더하는 식으로 반복하며 기존값에 값을 누적해서 더하게 된다.
이런 구조의 문제는 Lv.0에서도 많이 등장했는데 Lv.1답게 출제지문만 좀더 길어지고, 비교하는 값이 추가된 형태로 등장했다.
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/176963
LIST
'🖥 Computer Science > Algorithm' 카테고리의 다른 글
[프로그래머스/Lv.1] 달리기 경주 (1) | 2023.11.25 |
---|---|
[프로그래머스/Lv.0] 영어가 싫어요 (2) | 2023.11.21 |
[프로그래머스/Lv.0] 대문자와 소문자 (0) | 2023.11.21 |
[프로그래머스/Lv.0] 숨어있는 숫자의 덧셈(1) (0) | 2023.11.21 |
[프로그래머스/Lv.0] 문자 반복 출력하기 (1) | 2023.11.21 |
dev_genie
@dev_genie
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!