본문 바로가기

코딩 테스트/Lv.3

(4)
[프로그래머스] 풍선 터트리기 with Kotlin 문제일렬로 나열 된 풍선 n개가 주어진다.풍선엔 각각의 번호가 부여되어 있으며, 다음 과정을 통해 풍선을 하나만 남기려고 한다.임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트립니다.터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 풍선들을 중앙으로 밀착시킵니다.이때 번호가 더 큰 풍선을 터트려야 하며, 딱 한번 번호가 작은 풍선을 터트릴 수 있다.마지막까지 남을 수 있는 풍선의 개수를 반환하여라. 풀이방법(핵심 아이디어는 다른 사람 블로그를 참조했습니다.)핵심 아이디어지정한 풍선이 A라고 할 때, A의 양 옆의 풍선들의 최소값이 A보다 크다면  A는 마지막까지 남을 수 있다.양쪽 중 한쪽만 최소값이 커도 한 번의 기회를 사용하면 마지막까지 남을 수 있다.다만 양쪽 다 ..
[프로그래머스] 가장 긴 팰린드롬 with Kotlin 문제앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다. 제한사항문자열 s의 길이 : 2,500 이하의 자연수문자열 s는 알파벳 소문자로만 구성 풀이 과정for문으로 2500부터 내려오면서 i의 길이만큼 문자열 s를 잘라서 탐색탐색 방법 >> 문자열 중간부터 양쪽으로 문자가 같은지 다른지 확인팰린드롬이 있다면 반복문 종료 이후 i 반환문자열을 잘라서 확인하는 방법substring >> 편하긴 하지만 효율성 1번에서 시간초과 나옴시작..
[프로그래머스] 2024 KAKAO WINTER INTERNSHIP n + 1 카드게임 with Kotlin 문제1~n 사이의 수가 적힌 카드가 하나씩 있는 카드 뭉치와 동전 coin개를 이용한 게임각 카드는 중첩되지 않는다. (카드 10장이 있다면 10장 다 다른 숫자)카드 뭉치에서 n/3개의 카드를 뽑아 갖는다. (카드 뭉치 앞에서부터 n/3개)각 라운드마다 카드 뭉치에서 2장씩 뽑고, 버리거나 동전을 사용하여 갖는다. (동전 하나 당 카드 한 장)카드 뭉치에 카드가 없다면 종료또한 라운드마다 내가 갖고 있는 카드에서 n+1이 되도록 카드 두 장을 제출하고 다음 라운드로 진행제출할 수 없다면 종료(예시는 프로그래머스 참고 바랍니다.)https://school.programmers.co.kr/learn/courses/30/lessons/258707 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭..
[프로그래머스] 베스트앨범 with Kotlin 문제 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니다. ..