-
[자바스크립트] 프로그래머스 Lv.1 신고 결과 받기[TIL] 카테고리/알고리즘 문제풀기 2022. 6. 3. 11:39
Lv.1 의 마지막 문제!! 내일은 Lv.2를 도전해볼까 백준으로 갈까.. 고민된다 ㅋㅋ...
점점 더 어려운걸 도전하는게 맞는거 같기도 하고, 아직 Lv.1 도 좀 어려운게 있는데 + 효율적인 코드로 못 푸는데..?
ㅋㅋㅋㅋ 내일 한번 도전해보고 생각해야겠다!
let reported_by = id_list.map((id) => []) let answer = id_list.map((id) => 0) report = report.map((r) => r.split(' ')).forEach((r, i) => { if (! reported_by[id_list.indexOf(r[1])].includes(r[0])) { reported_by[id_list.indexOf(r[1])].push(r[0])} }) reported_by.forEach((r,i) => { if (r.length >= k) { r.forEach((user) => { answer[id_list.indexOf(user)] += 1 }) } })
누가 신고했는지 정리해서 담아줄 배열 1개, 답안 배열 1개 각각 id 리스트의 길이만큼씩 요소를 가지게!
신고 명단은 공백을 기준으로 나눈 배열로 바꾸어주고 ( ["muzi frodo"] -> [ ["muzi", "frodo"] ]
각 신고 마다 신고당한 id의 인덱스를 id리스트에서 찾아서, reported_by 배열의 해당 인덱스에 push,
여기서 중복은 미리 걸러준다 (-> 미리 거르지 않고 나중에 Set을 쓰는 방법도 있다는걸 늦게 깨달았다. 아무튼.)
어떤 유저를 신고한 사람의 명단이 K와 같거나 많으면, 정지 당한다 -> 신고한 사람에게 이메일이 간다
reported_by 배열 내부의 배열 각각의 길이를 재서 K와 같거나 많다면,
해당 배열안에 들어있는 신고자들의 인덱스를 id리스트에 찾아서, 이에 해당하는 answer의 인덱스를 +1
'[TIL] 카테고리 > 알고리즘 문제풀기' 카테고리의 다른 글
[자바스크립트] 프로그래머스 Lv.1 크레인 인형뽑기 게임 (0) 2022.06.01 [자바스크립트] 프로그래머스 Lv.1 [1차]다트게임 (0) 2022.06.01 [자바스크립트] 프로그래머스 Lv.1 [1차] 보물지도 (0) 2022.05.31 [자바스크립트] 프로그래머스 Lv.1 폰켓몬 (0) 2022.05.30 [자바스크립트] 프로그래머스 Lv.1 체육복 (0) 2022.05.29