티스토리 뷰
문제
학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.
투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그
기호를 발표하고 있습니다.
선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작
성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다.
풀이
function solution(s) {
let answer;
s = str.split("");
let max = Number.MIN_SAFE_INTEGER;
// console.log(s);
let object = { A: 0, B: 0, C: 0, D: 0, E: 0 };
for (let i = 0; i < s.length; i++) {
if (s[i] === "A") {
object["A"] += 1;
} else if (s[i] === "B") {
object["B"] += 1;
} else if (s[i] === "C") {
object["C"] += 1;
} else if (s[i] === "D") {
object["D"] += 1;
} else if (s[i] === "E") {
object["E"] += 1;
}
}
max = Math.max(
object["A"],
object["B"],
object["C"],
object["D"],
object["E"]
);
answer = Object.keys(object).find((key) => object[key] === max);
// console.log(object);
return answer;
}
let str = "BACBACCACCBDEDE";
console.log(solution(str));
오브젝트를 만들어서 키값과 벨류값 정해준 뒤 맥스값을 찾아 벨류값으로 키값을 찾는 find로 문제를 풀었습니다.
다른 풀이
function solution(s) {
let answer;
let max = Number.MIN_SAFE_INTEGER;
const map1 = new Map();
for (let x of s) {
if (map1.has(x)) map1.set(x, map1.get(x) + 1);
else map1.set(x, 1);
//console.log(map1.has(x));
//console.log(x);
}
console.log(map1);
for (let [key, val] of map1) {
console.log(key, val);
if (max < val) {
max = val;
answer = key;
}
}
return answer;
}
let str = "BACBACCACCBDEDE";
console.log(solution(str));
map 을 만들어서 map.has(x) 를 통해 없으면 map.set (x,1)을 해주었고 만약 있다면 map.set(x,map.get(x)+1 을해서 map의 key,value 값들을 저장하였고 for (let [key,val] of map) 을 통해 key 값과 value 값을 동시에 출력하여 value 값이 max 보다 크다면 max 로 지정해주고 answer에는 key값을 넣어주어 답을 구했습니다.
'알고리즘 > 코딩테스트 공부' 카테고리의 다른 글
5-8 모든 아나그램 찾기(해쉬, 투포인터, 슬라이딩 윈도우) (0) | 2021.12.02 |
---|---|
5-7 아나그램(해쉬) (0) | 2021.12.02 |
5-5 최대 매출 (0) | 2021.12.01 |
5-4 연속 부분수열 2 (0) | 2021.12.01 |
5-3 연속 부분수열 1 (0) | 2021.12.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- error
- TopLayer
- NextRequest
- createPortal
- javascript
- 노개북
- WSL2
- 아차산
- jest
- 노마드코더
- 윤성우 열혈C프로그래밍
- env
- 프리온보딩
- electron
- React
- 위코드
- nodejs
- 우아한테크코스
- 스토리 북
- NextApiRequest
- import/order
- 초보
- 프론트앤드
- 원티드
- CLASS
- Storybook
- nextjs
- C언어
- 북클럽
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함