본문 바로가기

반응형

프로그래머스

(108)
[정렬] 프로그래머스 '가장 큰 수' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 코드 정렬 시 조건이 양수이면 순서를 그대로 유지하고 음수이면 순서가 변환된다는 것과 a가 뒷 요소, b가 앞 요소라는 것을 잊지말자. function solution(numbers) { // 모든 요소들을 string으로 바꿔준다. // 문자열을 그대로 연결한 수(a+b) - 바꿔 연결한 수(b+a)가 양수이면 순서를 그대로 유지한다. let temp = numbers.m..
[정렬] 프로그래머스 'K번째수' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 commands의 길이만큼 for문을 돌린다. array.slice(commands[i][0]-1,commands[i][1])를 통해 조건에 맞게 배열을 자른다. sort((a,b) => a - b)을 통해 오름차순으로 정렬한다. 조건에 맞게 자르고 오름차순으로 정렬한 배열의 commands[i][2] -1 번째 인덱스 값을 리턴할 배열에 넣어준다. 3. 코드 function..
[해시] 프로그래머스 '베스트 앨범' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 해당 문제의 설명은 주석으로 대신한다. Object를 사용하여 해쉬 테이블을 만드는 방식을 사용했다. 3. 코드 function solution(genres, plays) { let answer = []; // 장르 별 재생 횟수 저장하는 객체 let totalPlays = {}; // 각 노래 별 장르, 재생 횟수, 인덱스 저장하는 객체 let playList = {}; f..
[해시] 프로그래머스 '위장' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 이번 문제는 해시 개념을 잘 사용해서 해시 테이블을 만드는 것까지는 문제가 없었으나... 문제는 조합을 구하는 것이였다 ㅋㅋㅋ 역시 수학이 내 발목을 잡는구나~~~ 어떻게 조합에 관련한 코드를 짤지 감도 안오던 터, 질문하기 부분에 좋은 설명이 있어 해당 글을 참고해가며 풀었다. https://school.programmers.co.kr/q..
[해시] 프로그래머스 '폰켓몬' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 해당 문제는 알고리즘 개념 중 '해시'를 사용하여 푸는 문제이다. 해시 테이블은 key-value가 1:1 매핑되어 있기 때문에 검색, 삽입, 삭제 과정에서 모두 평균적으로 O(1)의 시간복잡도를 갖는다. 해시를 사용하여 문제를 풀 때는 Map 또는 Object를 사용하면 된다고하는데, 나는 Map을 선택했다. Map이 좀 더 효율적이라고 하여...ㅎㅎ 먼저 new Map()을..
[문자열] 프로그래머스 '괄호변환' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/60058#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 먼저 isRight 함수는 문자열이 "올바른 괄호 문자열"인지를 판별해주는 역할을 한다. open 이라는 배열을 선언해주고, 만약 i번째 문자가 '('이면 open에 str[i] 값을 넣는다. 만약 i번째 문자가 ')'이고 open의 길이가 0이 아니라면 pop()을 해준다. 만약 i번째 문자가 ')'인데 open에 어떤 요소도 없으면 바로 false를 리턴해준다. '..
[완전탐색] 프로그래머스 '모음사전' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 이 문제 또한 모든 조합 가능한 단어를 만들어야하므로 완전탐색이다. fixed된 요소에 덧붙여나가는 유형이므로 당연히 dfs를 쓴다. dfs의 파라미터를 구성하는 방식을 잘 공부해야겠다. A,E,I,O,U AA,AE,AI,AO,AU,BB,BA... AAA,AAE,AAI... ... AEIOU 알파벳 정렬은 sort(), reverse()를 ..
[그리디] 프로그래머스 '구명보트' - js 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 설명 이 문제는 그리디 알고리즘을 사용하여 푸는 문제이다! 그리디는 정렬이 핵심이라고 한다. 어떻게 정렬해야 최적의 해가 나올지 항상 고민하자. + 계단을 한 칸 내지 두 칸만 움직일 수 있다~ 토끼는 번식을 한 달 내지 두 달 뒤에 할 수 있다~와같이 1과 2에 밀접한 관계가 있으면 피보나치를 사용하여 문제를 푼다! (스터디원분이 주신 꿀팁^^..

반응형