카테고리 없음

24/3/28 알고리즘(2)

한지지우우 2024. 3. 28. 20:47

접미사 배열

 

내풀이

// 문자열을 배열로 만들고 맵함수를 돌린다. 접미사는 배열의 길이만큼 있을테니깡

// 그리고 문자열을 시작인덱스부터 끝까지 쓰고 sort를 통해 정렬해주면 끝

 

베스트 풀이

//호오 섭스트링을 쓰셨구만 괜찮네 ㅋㅋㅋ

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

배열 만들기 3

내풀이

// 주어진 길이 맞춰 slice로 짤라주고 그렇게 나온 배열 두개를 concat으로 순서대로 묶어준다.

//오호 이것도 좋네 구조분해 할당으로 그냥 바로 꺼내쓰는법도 좋네 흐음흐음

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

문자열 돌리기

내풀이

//포문 돌려서 콘솔 str의 길이만큼 돌려준다. 

베스트풀이

//배열화 시켰어 배열매서드 돌렸구먼 오호

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

문자열 잘라서 정렬하기

내풀이

// x를 걷어내면서 배열로 만들고 빈문자열은 걷어내고 사전순으로 정렬

베스트 풀이

//match 매서드는 뭐지 첨본다 찾아봐야지 match 정규표현식에 일치하는 애들로 배열을 만든다고 하는군 신기

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

내풀이

// abc가 다 다를때랑 abc가 다 같을때랑을 먼저 분기 처리하고 abc중 두개가 같을때를 별도로 꺼내서 처리 완료

베스트 풀이

//와 이거 좋은데?? Set을 통해 동일한 값을 없애 버리는 구나 와우 언빌리버블 이야 지렸다.

// cal이라는 함수 별도로 꺼낸것도 좋고 재활용이 야무진 코드다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

9로 나눈 나머지

내풀이

//배열로 만들고 각요소를 다 더해주고 9로 나눈 나머지 리턴하면 끝

베스트 풀이

//와 이거 머냐? 호오 이런것도 있구만 엄청 큰수에 사용한다. 이거구먼 ㅇㅋㅇㅋ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

세로 읽기

내풀이

// 뭐 일단 몇행으로 쪼개지는지 횟수로 저장하고 포문돌려서 해당 열의 문자열을 answer에 푸쉬하도록 조치

베스트 풀이

//아하 와우 i를 m으로 나눈 나머지하고 필요한 것의 인덱스가 같겠구나 그거에 해당하는애들로 필터링해서 합쳐주는구먼

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

등차수열의 특정한 항만 더하기

내풀이

//인클루드의 요소가 참인지 거짓인지 여부에 따라 등차수열을 쓸지 0을 담을지 정해서 그 배열의 넘버들을 다 더해서 리턴

베스트 풀이

//아하 맵함수를 쓸필요도 없네 바로 새배열 만들게 아니라 그자리에서 더해버리면 되는구나 오호 좋네

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

문자열 섞기

내풀이

//동일한 길이의 배열을 만드는데 str1과 str2의 같은 위치의 요소들을 더해가면서 나중에 join으로 합쳐서 문자열완성

베스트 풀이

// 내꺼랑 완전히 일치하는데?? 호호

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

날짜 비교하기

내풀이

// 배열 매서드는 도중에 종료할수가 없나봄??? 흐음 포문을 써서 첫번째 연도가 date1이 빠르면 바로 1리턴하고

//뭐 같으면 다음포문으로 넘어가고 남은건 date1이 date2보다 늦은 날짜면 볼것도 없이 0리턴하고 끝  깔꼼

베스트 풀이

//뭐야 이거 배열은 걍 Date 에 넣어도 이게 된다고 홀리쉿 한수 배움

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

이차원 배열 대각선 순회하기

내풀이

// 와 나 지금까지 for in문 좋아해서 엄청쓰고 있었는데 이따 i랑 j를 직접적으로 쓰는게 오류가 발생할수도 있다네?

//와 진짜 몰랐음 허허 난이제 뭘써야 하오?

베스트 풀이

//와 reduce 두번 쓰는거 멋있다. 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

수열과 구간 쿼리 1

내풀이

// 아씨 늙었나 머리회전이 안되네 arr을 한번 answer에 담고 이중포문으로 해당되는 위치마다 1씩 넣어주면 끝

베스트 풀이

//흐음.. 아 나도 구조분해 할당으로 할걸 이래야 안헷갈리는데 이거 좋다. 포이치 안에 와일문 돌리셨구먼 

//깔끔하고 좋다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

내풀이

// 뭐 그냥 문자열 배열 만들고 필터하는데 indices에 index번호가 있는지 확인하고 없는것들만 건져내서 join으로 합쳐서 끝

베스트 풀이

//뭐 원리는 같구먼 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

배열 만들기 5

내풀이

// 배열 만들고 각 요소를 원하는 길이만큼 잘라주고 그 배열요소중에서 k보다 큰거 걸러주면 끝

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

빈 배열에 추가, 삭제하기

내풀이

//해석하기 귀찮 ㅋ 

//와 reduce 잘쓰는거 부럽네 pop쓰는게 아니라 slice로 자르는것도 좋네

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

문자열 뒤집기

내풀이

//splice 오랜만에 쓸려니까 어색하네 뜯어 고치게 arr에 할당하고 필요한 만큼 뜯어내서 뒤집은 문자열 만들고

//본배열에 원하는 위치에 문자열 쑉 넣어주고 문자열로 만들면 완성

베스트 풀이

//substring 으로 뽑아내셨구먼 배열로 만들고 뒤집고 문자열로 만들고

//오호 replace썻구먼 이거 좋네 str 드러내고 거기다newStr을 넣는다 오호 좋다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

내풀이

// 문자열에서 pat 의 마지막 인덱스를 구해보고 이제 그 문자를 pat이 마지막 글자가 되도록 자르면 끝

베스트 풀이

//아하 그냥 마지막에 pat을 더해줘서 문자열 완성하면 끝이고만? 섭스트링으로 쪼개주고 오호

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

내풀이

//answer에 할당해 주고 쿼리스는 요소가 배열이니까 쓰기 편하게 구조분해 할당해주고

// 요소들 바꿔주고 리턴

//아이고 이것도 구조분해 할당하면 깔끔하구먼? ㅋㅋ 쓋
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

문자열이 몇 번 등장하는지 세기

내 풀이

//일단 쪼개질수 있는 숫자만큼 빈배열 만들어 주고 그 배열을 map돌려주고 pat의 길이에 해당하는 만큼 잘라서

//pat의 길이에 해당하는 경우의 수를 다 구해서 그배열 요소가 정확히 pat과 일치하는 요소의 개수구해주면 끝

베스트 풀이

// 흐음 정규식이구먼 g는 글로벌일테고 이제 pat과 일치하는 정규식을 만드는거 같은디? 그리고 문자열에서 

//그 정규식에 일치하는 문자열을 배열로 뽑고 그 길이를 알아내고 호오 어렵네

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1로 만들기

내풀이

// 넘리스트의 요소들로 계산을 해야하니까 포이치 돌리고 해당 아이템 num에 일단 할당해 놓고

짝수면 조래 계산 해주고 홀수면 조래 계산해주고 나눠주는만큼 횟수 추가해주고 끝 첨에 num===1 이렇게 

조건해놔서 머지 왜이러지 했네 짜증

베스트 풀이

//엥? 와 찢었다. 2진법으로 바꾼것의 스트링길이에서 1뺀게 나눈횟수구나??? 지렸다. 그걸 다 더해주기만 하면 되고?
// 와 수학적 접근 지렸다. 감탄만 나오네

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

간단한 논리 연산

내풀이

// 머그냥 && 하고 || 아는지 확인하는 문제고만

베스트풀이

// 이거 재밌네 불리언 값을 넘버형으로 바꿔서 계산 결과 값을 리턴하네 ㅋㅋ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

내풀이

// 일단 answer에 거듭 제곱들을 담는다. 그리고 arr의 길이가 거듭제곱중에 하나랑 같아 질때까지 와일문 돌리고

//arr에 0을 추가하면 길이를 증가시킨다.

베스트 풀이

// Math.log2라는게 있구나.... 저걸로 지수를 구하는 구나... 그걸 올림해서 도달할 길이를 구해주고

//오호 이제 새 배열을 0으로 가득찬애로 밀어주면 끝이구나 오후 좋다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~