2021. 12. 28. 10:40ㆍWEB Dev/CordingTEST
출근하면서 생각해봤는데, sort 하고 순서대로 비교하는 것도 답은 아닌 것 같았다.
우선 partcipant에 값이 두 번 이상 나오는지 확인해야 하지 않을까?
아무리 생각해도 뭘 써야하는지 모르겠어서 우선 배열 관련 메소드를 다 확인해본다.
이러면서 공부하는거지 뭐
그런데 이 문제가 '해시' 카테고리에 있는 문제이기 때문에 '해시'라는 개념을 적용해야 한다는 조언이 있었다.
해시...?
해시가 무엇인지 알아보자
해시 Hash / 해시 함수 Hash Function / 해시 테이블 Hash Table
해시 자료(데이터)를 다루는 기법 중 하나
해시 함수 데이터를 효율적으로 관리하기 위해 임의 길의의 데이터를 고정된 길이의 데이터로 매핑하는 함수
키Key 해시 함수를 이용해 매핑하기 전 데이터의 값 (원본 데이터)
해시값Hash Value(Code) 해시 함수를 이용해 매핑한 데이터의 값
해싱Hashing 키Key와 해시값Hash Value(Code) 로 매핑하는 과정
해시 테이블Hash Table
해시 테이블은 키Key와 해시값Hash Value(Code)이 하나의 쌍을 이루는 데이터 구조다. (자바스크립트의 객체Object와 비슷하다.)
키Key 값을 해시 함수Hash Function 를 통해 배열의 인덱스로 사용한다.
자료구조에 대해서 아예 모르다보니 블로그 글을 보고 이해하는데도 머리가 너무 아팠다.
결국에는 해시 함수라는게 있고, 자바스크립트 객체처럼 키와 값을 가진 해시 테이블을 만들 수 있는데, 키 값을 해시 함수에 돌려서 나온 리턴 값을 해시 밸류로 쓰고 이 배열을 이용해서 뭔가 자료를 처리한다는 ... 그런 의미인거 같다.
검색하다가 완주하지 못한 선수의 답을 적어두신 블로그 글이 있었는데,
마지막에 find로 접근하는 방법도 있어서 이번에도 따라써보려고 한다.
아.... 자료구조도 공부해야하는구나..
책.. 사서 공부해야지..
시간.. 더 쪼개써야지..
개발자의 길은 멀고
험하다
'WEB Dev > CordingTEST' 카테고리의 다른 글
[매일코딩-프로그래머스] 문자열 다루기 기본 03 (0) | 2022.01.05 |
---|---|
[매일코딩-프로그래머스] 문자열 다루기 기본 01, 02 (0) | 2022.01.04 |
[매일코딩-프로그래머스] 완주하지 못한 선수 01 (0) | 2021.12.27 |
[매일코딩-프로그래머스] 모의고사 06 (0) | 2021.12.09 |
[매일코딩-프로그래머스] 모의고사 05 (0) | 2021.12.08 |