본문 바로가기

알고리즘

(63)
[JAVA]프로그래머스_주식가격 문제 : https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니..
[JAVA]프로그래머스_땅따먹기 문제 : https://programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 문제 유형 : 구현, DP? 풀이 방식 - 우선순위 큐를 이용해서 구현 - 메모이제이션 느낌이로다가 1. 행 마다 우선순위큐를 선언 2. i 번째 행의 값(land[i][j])과 인덱스(j)를 우선순위 큐에 offer 3. 제일 큰 값과 그 다음으로 큰 값을 poll (pq1, pq2) 4. 조건[땅따먹기 게임에는 한 행씩 내려올 때..
[JAVA]프로그래머스_게임맵최단거리 문제 : https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제 유형 : BFS 풀이 방식 - BFS를 이용 - BFS while 문 안 처음 for문을 큐 사이즈만큼만 돌려준다. (같은 레벨? 뎁스? 만큼만 돌리고 턴 카운트 해주기위해서) - 근데 큐 폴할때 최종지점인지 확인하면 안되고 넣을때 확인하면 되는걸까...? 소스코드 import java.util..
[JAVA]프로그래머스_기능개발 문제 : https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제유형 : 자료구조(큐/스택), 구현 풀이방식 : 큐를 이용해서 구현. 1. 큐에는 각 작업들이 배포가 되는 날짜들을 넣어 주었다 2. 큐를 빼주면서 preValue(이전 값중 최고봉), nowValue를 비교하며 count 3. count 값을 list에 넣어주고 anwer로 옮겨 넣어주었다. ※ 테스트케이스 11번만 통과가 안된이유 배포는 ..
[JAVA]프로그래머스_올바른 괄호 문제 : https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 문제유형 : 구현 풀이방식 : 단순구현 문제 leftCount => '(' 의 개수 rightCount => ')' 의 개수 소스코드 class Solution { boolean solution(String s) { boolean answer = true; int sLength = s.length(); int..
[JAVA]프로그래머스_짝지어 제거하기 문제 : https://programmers.co.kr/learn/courses/30/lessons/12973 문제유형 : 구현 풀이방식 : 스택 문자열의 길이 : 1,000,000이하의 자연수 이기때문에 for문을 사용하게되면 시간초과가 나온다. 소스코드 import java.util.*; class Solution { public int solution(String s) { int answer = -1; int sLength = s.length(); Stack stack = new Stack(); stack.push(s.charAt(0)); for(int i=1; i
[JAVA]프로그래머스_스킬트리 문제: programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 유형 : 시뮬레이션, 구현 풀이 방식 처음 문제 풀때 간단하게 생각하여 생각없이 코드를 구현했음을 반성합니다. 1. 리스트 : skill 의 알파벳을 하나씩 다 담아놓는다. 2. 스킬트리에서 skill에 존재하는 알파벳으로만 changedStr을 만든다. 3. changedStr을 인덱스에 맞게 strArr에 넣어준다. 4. strArr[i]가 skill 문자에 포함되어있으면 첫번째부터 스킬이 찍혔나 확인해준다. 소스코드 package Programmers; import java.util.ArrayList; import java.util.List..
[JAVA]프로그래머스_프린터 문제 : programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제 유형 : 구현 풀이방식 : 큐를 이용하여 구현 소스코드 package Programmers; import java.util.Iterator; import java.util.LinkedList; import java.util.Queue; public class 프린터 { public static void main(String[] args) { //int[] prior..