코테 후기에서 벗어나지 못했다. 그래서 뒤늦게나마 열심히 뒤져봤다.
문제를 이제 생각해 보니 string 2개가 주어졌을 때 해야할 일이 내가 잘 못생각했었다.
나는 먼저 1. 배열로 만든 다음에 2.중복된 걸 찾고 3.중복된걸 빼고 붙이고 4.문자열 짧은거 찾고 5. 길이수가 같으면 사전순으로 만든다
가 내 로직이었다. 여기서 잘못된 점을 먼저 찾는다면 중복된거 찾는 것과 중복된걸 빼고 붙이는데 앞 뒤로 붙이는 걸 한번에 하려 했다느 점이다. 생각해 보니 난 앞뒤로 붙이는 걸 한번에 할 능력이 없었다. 그리고 이미 중복된걸 제거하고 배열을 만들어 주는 set이 있는데 왜 그랬을 까.
괜히 include랑 filter를 해서 찾는다고 시간도 걸렸고 reduce를 해서 한방에 붙이겠다는 생각을 한게 시간잡아먹는데 1등이었다.는 사실 내장함수를 아는데 내장함수 사용법을 까먹어서 문제였던... 프로그래머스에서는 js안내?가 있는데 여기서도 set을 봤으면서 그냥 예제를 따로 배열로 만드는 거에 골몰했지 첨부터 합쳐서 배열을 만들고 작업하려곤 생각을 안했다. 합치는 concat도 나중에 쓰려고 했지..
그래서 배열을 합치는 걸 잘 설명해주신 분들이 계셔서 그걸 가지고 와 봤다.
https://velog.io/@dolarge/Java-Script-Set-%EA%B3%BC-Map
이분은 set과 map을 되게 세세하게 설명해 주셨다.
https://jsikim1.tistory.com/227
그리고 이분은 정말 배열을 만들때 중복을 제거하고 만들때 사용할 수 있는 방법을 자세히 알려주셨다.
전에 프로그래머스에서 연습문제 푼다고 열심히 정독한 블로그들인데.. 왜 이때 사용했던게 기억이 안났을까... 아쉽다.
이 분들의 글을 종합하면 2개의 string을 1개의 배로 합칠 수 있다.
이것의 결과는
... 안쓰고 그냥 new set만 사용할 수 있었다.
결과는
숫자가 같은 것을 알수 있었다. Set(6)에서 괄호 안에 있는게 갯수인듯.
좋은 발견이었다 훗.
인제 갯수가 같다면 sort로 사전순인걸 찾아서 한개로 합치는 작업을 하면 되겠다.
https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d
하다보니 map고 reduce를 활용을 잘 설명해 주는 분의 글도 봤다. 확실히 내가 map과 reduce를 잘 모르는게 맞더라. 제로초님 역시 유명하시던데 유명한 이유가 있었다.
reduce를 쓸때는 배열.reduce((누적값,현재값,인덱스,요)=>{return 결과},초기값);
map을 쓸때는 배열.map((요소, 인덱스,배열)=> {return 요소});
잊지말자.
'자기개발 > TIL' 카테고리의 다른 글
수학 어렵네.. (0) | 2023.06.22 |
---|---|
내가 영어 면접을 보다니? (0) | 2023.06.21 |
js replace사용하기로 시작했다 하지만 ... 프로그래머스 가위바위보 (0) | 2023.06.19 |
엔픽셀 인턴 코테 후기와 새싹톤 방향성 혼란 (0) | 2023.06.04 |
[java, springboot] int와 INTEGER의 차이 (0) | 2023.06.02 |