이것저것 공부한다:: 코딩 테스트 30
반복문으로 풀 수 있을 것 같았지만, filter을 쓰면 더 쉽게 풀수 있겠다 싶어 새로이 검색해보았다.
https://school.programmers.co.kr/learn/courses/30/lessons/181862
구분자 쓰는 문제…
이렇게 풀었다가 한 번 때려쳤다.
아… 근데 쉬운 방법이 있었다. 본 방식은
‘a’와 ‘b’와 ‘c’를 공백으로 치환한 뒤, split을 이용하여 나누었다.
map으로 순회하는 방식을 택한 것이 멋졌다.
이 경우, map이 배열을 순회하는 함수이므로 myStr을 함수처럼 선언하였다. map을 통해 요소를 순회하되(join은 string으로 합쳐주는 용도) '공백‘ 으로 치환된 a, b, c를 만날 경우 나눠서 push하도록 코드를 바꾼 듯 하다.
문제는 filter인데…,. filter를 왜 저기 삽입했는지 모르겠다.
https://school.programmers.co.kr/learn/courses/30/lessons/181871
탐색하는 함수로는 다음이 있다::
indexOf(‘string’)
매개변수로 지정된 문자열이 있을 시 그 시작 index를, 없을시 -1을 반환함.
lastIndexof도 있던 걸로 기억한다.
search (‘ ’ )는 정규식 중 부합하는 가장 작은 수를 찾는다.
가장 처음 나오는 것이 무엇인지는 알겠는데… 몇 번 등장하는지 세는 것은 어렵다.
이번엔 이 글을 참고하여 공부하였다…
다른 예시 중 이 예시는 indexOf를 사용하였다.
제일 먼저 한 번, indexOf를 이용해 첫 번째 indexOf를 구하고.. 이후, 범위를 indexOf값 이후의 값으로 조정하여 찾아나가는 식이다.
https://school.programmers.co.kr/learn/courses/30/lessons/181890
자바스크립트 indexOf와 비슷한 인덱스를 찾아서 푸시려는 분들은 위의 조건 주의점이 배열에 l과 r이 둘다 동시에 없을때만 빈배열을 반환하라는 뜻입니다. 그래서 둘 중 하나만 없다면인 OR논리연산자로 인덱스위치 조건을 분기하게 되면 [u,u,d,d,l]과 같은 배열에서
4 < -1 과 같은 연산을 처리하면서 잘못된 배열을 return합니다.
l과 r중 하나가 없는 경우를 먼저 확인하면 좋다 하여 문장을 수정하니 65%로 올랐다.
10, 11, 13, 14, 15, 17, 20에서 문제 발생.
확인 결과, slice() 함수의 이용에서 문제가 발생한 것으로 사료됨. 코드 수정.
https://school.programmers.co.kr/learn/courses/30/lessons/120835
가장 작은 것을 구하는 방법은 어렵지 않다. Math.min을 사용하면 된다.
그러나 min을 구한 후,
1. 그 min의 index를 알고
2. 다음으로 작은 친구를 어떻게 구하는지가 제대로 떠오르지 않았다.
결국 문제의 답을 찾아보았다.
위 방법은
1. 임시 배열을 만든 후 sort
2. 그 배열의 요소 찾아.. 순위 매김
의 방식을 이용했다고 한다.
코드는 보지 않되 방법을 참고하여 문제를 풀었다 ㅠㅠ.
얕은 복사를 고려하여 다시 풀이…
- 카테고리
- #기타
댓글 0
추천 포스트