이것저것아무거나공부한다

이것저것 공부한다:: 프로그래머스 문제 풀이 50

https://school.programmers.co.kr/learn/courses/30/lessons/120888

중복이 없는 문자만을 배열로 받아, filter로 비교할까!?/1 싶었는데,

이 ‘중복되지 않는 것’을 고르는 것도 어렵고, filter 메소드도 잘 모르니 우선 filter 메소드부터 찾아보기로 했다.

filter 메소드:; Array 인스턴스의 순회 메소드, 주어진 배열의 일부에 대한 ‘얕은 복사본’ 생성 및, 주어진 배열에서 제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링.


문제를 그대로 베끼면 좋지 않으니.. 중복을 제거하는 방법이나 찾아보았다. 본 방법은

JS에서는 map, filter, set을 이용해 제거한다던데 영 어렵다.

처음 index와 inx가 같으면~~ 리턴. 하는 식… 이게 제일 많이 쓰이는 방법 같다.

indexOf와 indexLastOf의 존재는 알았으나, 그것으로 중복을 제거할 방법은 생각하지 못했다 ㅋㅋ

해결, split(‘’)은 잘만 외웠으면서 join은 자꾸 까먹는 것도 문제다.


https://school.programmers.co.kr/learn/courses/30/lessons/181900

i가 indices 안에 포함되어있는지 없는지를 빨리 탐색하기 위해, 그 관련 메소드가 존재하는지를 검색하였다.

그 결과 includes라는 메소드를 발견하였다. includes()는 그 배열 안에 값이 있는지 없는지를 확인하고 있으면 true, 없으면 false를 반환하는 함수이다. 나는 그 반대의 값이 필요하여 ! 를 붙였다.


JS 중 이진수를 더하는 것이 뭔지 헷갈렸다.

이 때, parseInt를 사용하되 parseInt(정수,2) 하면 된다고 한다. toString(2)도 붙이던데

8진수이면 8을 붙이는 것인가 싶다


https://school.programmers.co.kr/learn/courses/30/lessons/120883

Map 함수 사용 방법을 기억해두기 위해, 풀었음에도 답 한 번 캡쳐해둠.


https://school.programmers.co.kr/learn/courses/30/lessons/181909

splice에 대해 검색해봄.

splice는 매개 변수가 두 개임을 기억할 것.


https://school.programmers.co.kr/learn/courses/30/lessons/120838

그냥 Map을 사용하라고 낸 문제다.

map 함수는 각 요소에 대해 function을 호출하고 반환한다.


https://school.programmers.co.kr/learn/courses/30/lessons/181881

조건은 맞으나 ‘바로 직전의 배열’과 ‘현재 배열’의 비교에서 문제가 생기는 듯 했다.

결국 답을 보고 하게 되었다. 소소한 문제가 있었는데. 위 식의 경우 while문 내에 imsi1(현재 배열)을 넣고, imsi2에 arr을 넣어 비교하는 식으로 진행했다.

화살표 함수를 이용해 함수 하나를 넣어 식을 간략화한 것도 좋은 볼거리였다.

map을 이용하는게 이렇게 편한데 아직 어렵다. 연습이 필요하다.


https://school.programmers.co.kr/learn/courses/30/lessons/120894

… ….filter 메소드를 이용해야 하는 걸까? map은 아닌 것 같은데..

하고 보니 이 쪽은 replaceAll을 이용했다. 일정한 리스트를 두고, 특정 문자열을 바꾸는 식은 꽤 신선한 방법이었다.

replaceAll() :: replaceAll() 메서드는 pattern의 모든 일치 항목이 replacement로 대체된 새 문자열을 반환합니다. pattern은 문자열 또는 RegExp일 수 있으며 replacement는 각 일치 항목에 대해 호출되는 문자열 또는 함수일 수 있습니다. 원래 문자열은 변경되지 않습니다.replaceAll(pattern, replacement)

이 때 pattern은 문자열이거나 정규식 등이라고.

replaceAll은 이해했으나, numbers라는 매개 변수를 바로 replace할 수 이유를 모르겠다. 한 번 다른 매개변수에 값을 주려 했는데 잘 되지 않고 null이 출력되었다.


https://school.programmers.co.kr/learn/courses/30/lessons/120869

이것이 filter, map, includes를 넣으면 될 것 같다 생각했지만.. 그것을 어떤 순서로 어찌 넣어야 할 지에 대해서는 좀 더 고민이 필요해보였다.

그런데 찾아보니 내가 생각한 것과는 다르게 푼 이가 많았다.

1. filter 이용

2. foreach 함수를 이용하여 비교하되, includes가 있으면 count를 추가하는 식으로… count가 0이 아닐 때 1 return

조금 시간을 들이면 할 수 있지 않을까. 싶어 for문을 이용해 풀었다.

조금 돌아갔지만, 이와 같이 풀어내었다..


https://school.programmers.co.kr/learn/courses/30/lessons/181871

splice를 이용해, 앞에서 하나씩 지워가고 includes를 이용해 계산하려 하였으나 이 경우 오류가 발생할 수 있음을 깨달았다. 결국 index를 이용해 비교해야 한다 이건데…

시간이 조금 부족하다. 이….이걸 이해하려면 내가 시간을 써야 할 것 같아 일단 패스.,.


https://school.programmers.co.kr/learn/courses/30/lessons/120886

sort를 이용하고… …. stringify로 비교하는 방법 사용.

JSON에 대하여 공부해야겠다 싶어졌다.

카테고리
#기타

댓글 0



추천 포스트