24/4/2 알고리즘(1) lv1

2024. 4. 2. 18:32카테고리 없음

k번째 수

내풀이

//커맨즈 만큼에 배열길이를 갖으므로 해당배열에 맵매서드 돌리고 원하는 길이로 어레이를 슬라이스 치고

//오름차순으로 정렬하고 원하는 인덱스의 값을 요소로 갖겠끔 하면 끝

다른풀이

//동일하게 매핑 돌리시고 필터를 통해서 자르셨구나 이것도 좋군먼

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

두 개 뽑아서 더하기

내풀이

//넘버스의 숫자로 작업하기위해 reduce사용 이제 안에서 포문돌려서 인덱스가 idx보다 높은 요소들과

//일일히 합친 애들을 배열에 담는다. 정렬해주고 set을 이용해 동일 요소 빼주고 array로 담으면 끝

다른풀이

//이중포문을 돌아서 역시 모든 합을 배영ㄹ에 담고 set으로 동일 요소 빼주고 ...으로 배열형식으로 만들고 정렬해서

//반환

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

푸드 파이트 대회

내풀이

//reduce를 사용한다. idx가 0인애는 물이니까 가볍게 무시하고 이제 준비한 음식인 cur을 반으로 나눴을때

//몫이 이제 한 선수가 먹을 음식의 양이니까 그만큼 repeat로 반복해줘서 축적한다.

//그러면 좌우대칭문자열중 앞에께 완성됨 그걸 뒤집은애랑 사이에 0을 두고 붙이면 끝

다른푸링

//역시나 반복문으로 대칭 앞쪽 문자열 완성해주고 0사이에 두고 뒤집은 문자 뒤에 붙여주면 끝

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

문자열 내 마음대로 정렬하기

내풀이

//일단 alpha 라고 소문자 알파벳을 순서대로 가진 문자열 만든다.

//sort를 돌리고 n인덱스의 요소가 다르다면 인덱스번호가 빠른게 앞에오도록 sort하고

//이제 같을때가 문제 인데 같은면  사전순으로 정리한다.

//for 문돌려서 같은번째 인덱스가 다를경우에 인덱스 위치에 맞춰서 정렬한다.

다른풀이

// localeCompare라는 문자열 비교 매서드가 있구먼 호호호 처음 본다. 

다른풀이

//charAt 이건 뭐냐 신기하네 이런게 있구나

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

[1차] 비밀지도

내풀이

//arr1과 결과 배열이 동일한 길이니까  map 돌린다. arr1과 arr2의 2진법숫자를 str1과 str2에 각각 담는다.

//길이 조정을 위해 repeat를 사용하여 앞에 빈 자리에는 0을 채운다.

//포문을 돌려서 이제 1이 하나라도 들어가는 자리면 대신 샵을 채우고 아니면 공백을 채운 sum을 

//완성하고 map매서드의 반환값으로 sum을 내보내면 끝

다른풀이

//padStart는 또 머당가? 와 a|b[i] 이거 지렸다 ㅋㅋㅋㅋ 둘중하나라고 1이면 됭꼐 와우 

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

콜라 문제

//흐음 일단 빈병을 n을 처음에 할당하고 while문을 돌린다. 받은콜라는 이제 빈병 a개당 b개를 돌려주니까 저래하고

//받은콜라를 축적해주고 

//반납한빈병을 구해주고 새로운 빈병은 원래빈병에서 반납한빈병을 빼고 받은콜라가 새로운 빈병이 되니까 더해준다.

그렇게 해서 while문에서 돌면 끝

다른풀이

//이건 뭐죠? 

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

명예의 전당(1)

내풀이

//일단 뭐 score로 맵함수 돌리고 이제 score중 출연한 애들까지만 잘라주는데...

//인덱스가 k보다 작으면 가장 점수 낮은애를 보여주면 되고 

//아니면 이제 k번째 등수인애를 보여주면 됨

다른풀이

//리듀스를 쓰셨군요 k보다 작으면 이제 해당요소를 푸쉬하는 군요 그리고 오름차순 정렬하고 

//k보다 작지 않다면 역시 푸쉬하는데 앞에넣어줬던걸 빼주는 군용 오호 그리고 딱 k개 만큼이 유지되도록 하는군요

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

추억 점수

내풀이

//photo에 대해서 map을 돌린다. item도 배열이므로 안에서 reduce를 돌린다. name이라는 배열에 해당 요소가 있는지

//인덱스가 무엇인지 확인한다. index가 -1이면 인덱스가 없는것잉께 그냥 넘어가고 index가 있으면 여닝에서

//추억점수를 축적해준다. 모든 축적값을 map함수의 요소로 반환하면 끝

다른풀이

//reduce 맛깔나게 쓰시네

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

카드 뭉치

내풀이

//결국 못풀었다 뭐가 문제지? 답을 봅세다. //하라는 대로 안해서 그런가? 흐음... 내코드가 안되는이유 알려주세용 님덜

다른풀이

//와 씨 이렇게 간단한걸 뭐한거지... 그니까 양쪽카드에 있으면 빼고빼는데 양쪽에 다 없으면 No를 반환하고 끝낸다는거구먼 이래 쉬운걸 왜 .... 뭐지....

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

2016년

내풀이

//요일을 담은 배열을 만드는데 1월1일이 금요일이니까 1인덱스가 금요일이 되도록 마준다.

//12달의 일수를 담은 배열도 만든다. 월이 1일때는 오류나니까 따로 빼서 처리해주고 이제 정해진 날짜까지의 일수를 

//모두 더해서 7로 나눈 나머지를 해서 요일을 구한다.

다른풀이

//요건 뭐다냐 뭐가 Date를 저렇게도 쓰는구나...

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

폰켓몬

내풀이

//최대 고를수 있는 개수를 파악한다. 그리고 포켓몬 들어있는 배열중에서 동일한애는 빼준다. set으로 다시 배열로 만들고 길이를 파악한다. 고를수 있는 가짓수보다 켓몬 개수가 많다면 최대로 고를수 있다. 아니면 켓몬 개수만큼이 최대이다

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

모의고사

내풀이

//수포자 자슥들의 찍는방식을 문자열로 만든다. answers에 reduce를 돌린다. 이제 수포자가 찍은거랑

//현재 요소랑 비교해서 배열로써 반환한다. a ,b, c는 각각 수포자가 맞힌 문제의 갯수이다.

//가장 많이 맞힌 갯수를 파악하고 가장 많이 맞춘아이의 번호를 배열에 담는다.

다른풀이

//처음부터 필터를 써서 맞춘 정답만을 담는 배열을 만들고 그 길이를 파악했구먼

//이제 그 길이가 가장 긴놈의 값을 찾고 그 값과 일치하면 배열에 담아서 반환

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

기사단원의 무기

//테스트해보니까 문제 풀이 과정에는 문제 없는데 시간복잡도가 엄청나게 증가하면서

//타임아웃이 나타난다.

다른분의 풀이

//이분의 시간복잡도 해결방식을 파악해보자 두번째 포문에서 제곱근까지로 연산을 한다.

//동일하게 약수일때 i/j로 나누고 그게 j몫과 같으면 divisor를 1만 올리고 아니면

//divisor를 2를 올린다. 흐음... 아하 안에서 이제 이미 divisor가 limit를 초과하면 더이상 포문을 돌릴

//이유가 없구나... 흐음.... 

또다른 풀이

//역시 동일하게 이중포문이고 여기서는 j곱하기 j가 n까지??? 오잉? 방식은 똑같네 홀리쉿 

//이게 약수 구할때 시간 복잡도를 줄이는 방법이구나 오키 확인

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

과일 장수

내풀이

//과일을 비싸게 팔려면 좋은거는 좋은거끼리 묶어야 한다. sort를 통해서 내림차순으로 배열을 정렬한다.

//이제 포문을 도는데 갯수부족인애들은 걸러내도록 횟수를 정한다. slice를 통해서 상자들을 쪼갠다

//거기서 제일 싼사과의 가격을 찾고 사과갯수를 곱해서 합산해준다. 

다른풀이

//맨처음 슬라이스로 상자화 하지 못하는 것들을 걸러내는 구먼

//상자화 가능한 것들의 길이만큼 돌리고 이제 가장 싼놈에다가 갯수 곱해서 축적

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

소수 만들기

내풀이

//삼중 포문으로 nums에서 3개를 뽑아서 더하는 경우를 모두 arr에 축적한다. 다시 이중포문으로 그중에서 소수인 애들을 answer에 축적한다.

다른풀이

//홀리쉿 결국 사중 포문이구먼유 

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

에휴 어렵네 일단 여기까지