코딩테스트 7

[코테] 프로그래머스 해시 알고리즘 - 베스트앨범 (문제풀이)

문제설명)스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요.  문제풀이)항상 그렇듯이 맵을 생성해서 장르를 저장한다. 하지만 이번엔 총 카운트가 필요해서 두개를 생성해서 담았다.그다음에 총 카운트를 해서 제일 많은 카운트의 장르순으로 정렬을 한다 .정렬을 한 다음 다시 순서대로 담으면 완성function solution(genres, plays) { var answer = []; const genreMap = new Map();..

코딩테스트 2024.05.03

[코테] 프로그래머스 해시 알고리즘 - 의상 (문제풀이)

문제설명)코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다.코니는 하루에 최소 한 개의 의상은 입습니다. 문제풀이)저번에 풀었던 문제와 비슷하게 느껴져서 map.set 을 사용하면 좋을거 같다고 생각이 들었다.데이터를 처음에 맵에 넣어두고 이렇게 저렇게 다양한 시도를 해본 끝에 탄생먼저 데이터를 담을 맵을 생성옷갯수대로 포문을 돌리고 카테고리 중복 체크를 하기위해 +1 를 더한다그럼 맵안에 {옷 : 2, 모자 :1} 이런식으로 세팅이 된다따라서 맵을 다시 포문..

코딩테스트 2024.04.28

[코테] 프로그래머스 해시 알고리즘 - 폰켓몬 문제풀이

https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코테 준비를 하면서 각각의 알고리즘 관련 문제를 풀어보고 있다. 먼저 해시 알고리즘의 문제중 폰켓몬을 풀어봤다. 문제 요약) 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3, 1, 2, 3]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬..

코딩테스트 2024.04.21

[코테] 알고리즘의 종류

자 이제 코테준비를 다시 시작하는 의미에서 알고리즘 공부를 시작해보겠다. 이전에는 그냥 부딪혀서 문제풀이에 집중했었는데 알고리즘 공부를 제대로 할 필요성을 느껴서 한번 정리해보았다. 앞으로도 조금씩 정리할계획!! 우선 대표적인 알고리즘 종류에 대해서 알아보자 1. 탐색 알고리즘(Search Algorithms): 탐색 알고리즘은 주어진 데이터에서 원하는 값을 찾는 데 사용된다. 대표적인 탐색 알고리즘으로는 선형 탐색(Linear Search)과 이진 탐색(Binary Search)이 있다. 2. 정렬 알고리즘(Sorting Algorithms): 정렬 알고리즘은 데이터를 특정한 기준에 따라 정렬하는 데 사용된다. 대표적인 정렬 알고리즘으로는 버블 정렬(Bubble Sort), 선택 정렬(Selection..

코딩테스트 2024.03.22

[JavaScript] 프로그래머스 코딩테스트 ChatGPT 로 풀기 - 2

두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. 예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c, e, f, g, h] 순서에 의해 'h'가 됩니다. 나머지 "ukks" 또한 위 규칙대로 바..

코딩테스트 2023.02.27

[JavaScript] 프로그래머스 코딩테스트 ChatGPT 로 풀기 - 1

*개요 - 하도 ChatGPT가 난리 법석이여서 코테를 얼마나 잘푸는지 확인해보고 싶었다. - 코테가 어려워서 다양한 풀이 방법을 보고 싶었다. - 코테 싫어!!!! 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. 한 번 사용한 카드는 다시 사용할 수 없습니다. 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다. 예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가..

코딩테스트 2023.02.27

JavaScript(JS) - 프로그래머스 문제풀기 (feat.배열,김선생)

​ 문제1 : arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return => 중복을 찾지만 순서를 유지해야된다. (기존 중복제거 함수들 사용불가, 사용하면 [1,3,0] return) ​ 해결: 포문으로 돌려서 계속해서 데이터를 저장하고 비교하는 방식으로 풀어봄 => ​ let result = []; let check = ""; for (let i=0; i 인덱스값을 추출 ​ 해결: findIndex 배열 함수를 사..

JavaScript 2023.02.20
반응형