전체 글 140

[프로그래머스] 가장 긴 팰린드롬 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/12904?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 개요주어진 문자열 s에서 부분 문자열 중 가장 긴 팰린드롬(앞뒤가 똑같은 문자열)의 길이를 찾아 반환하는 문제팰린드롬이란?팰린드롬(Palindrome)은 앞뒤를 뒤집어도 동일한 문자열을 의미한다. 예를 들어, "abcdcba"와 같은 문자열은 팰린드롬이며, "abcba", "aa", "a"도 팰린드롬에 해당 풀이문자열의 각 위치를 중심으로, 양쪽으로 확장하면서 팰린드..

[프로그래머스] 연속 펄스 부분 수열의 합 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr sequence 배열에 -1, 1, -1 · · · 순서로 곱한 배한 배열, 1, -1, 1 · · · 순서로 곱한 배열 각각의 배열에서 연속된 부분 배열의 합이 가장 큰 값을 찾아 return 해주면 된다.연속된 부분 배열의 합이 가장 큰 값을 찾는 알고리즘으로 kadane 알고리즘을 활용하면 된다 https://icodesiuuuu.tistory.com/12 Kadane’s Algorithm..

[프로그래머스] 호텔 방 배정 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   import java.util.*;class Solution { static Map map = new HashMap(); public long[] solution(long k, long[] room_number) { long[] answer = room_number; for(int i=0; i

[프로그래머스] N으로 표현 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  N을 i번 반복하여 만든 숫자를 먼저 dp[i]에 추가합니다. 예를 들어, N = 5이고 i = 3이라면 555라는 숫자를 추가두 개의 작은 집합을 결합하여 새로운 숫자를 만들어냄. 예를 들어, dp[2]에서 55와 dp[1]에서 5를 이용해 dp[3]에서 555, 50, 275 등을 만든다  import java.util.*;class Solution { public int solutio..

[프로그래머스] 보행자 천국 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/1832 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 단순 bfs/dfs로는 시간초과가 발생하는 dp 문제오른쪽 혹은 아래로만 이동할 수 있기 때문에 dp 배열을 dp[m+1][n+1][2]로 생성dp[i][j][0]: (i, j) 위치에 도달할 수 있는 경로 중 위에서 내려온 경로의 수dp[i][j][1]: (i, j) 위치에 도달할 수 있는 경로 중 왼쪽에서 온 경로의 수cityMap이 0일 때(자동차가 자유롭게 이동할 수 있는 경우) dp[i][..

[프로그래머스] 풍선 터트리기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  import java.util.*;class Solution { public int solution(int[] a) { int n = a.length; if (n = 0; i--) { rightMin[i] = Math.min(rightMin[i+1], a[i]); } int answer = 2; ..

[프로그래머스] 코딩 테스트 공부 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  DP로 해결가능한 문제입출력 예#2로 예시를 들면 시작점은 0, 0 이고 최대 값은 10, 11 이기 때문에 10, 11 사이즈의 배열을 만들고 MAX_VALUE로 초기화 한다그리고 순차적 탐색을 하면서 단순히 공부만 했을 때 걸리는 시간과 문제를 풀었을 때 걸리는 시간을 비교하여 더 적은 값을 저장한다class Solution { public int solution(int alp, in..

[프로그래머스] 아이템 줍기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 2차원 배열에서 주어진 rectangle을 바탕으로 테두리 부분만 그리고 해당 경로를 바탕으로 bfs를 활용하여 해결하는 문제 한 가지 주의할 점은 단순히 주어진 정보를 그대로 2차원배열화 하면 아래와 같은 문제가 발생할 수 있음이런 문제는 90도 회전해서 접근하면 이해하기 쉽다 빨간색으로 표시한 부분 때문에 bfs를 진행할시 예상과 다른 결과값이 나올 수 있다이를 해결하기위해 주어진 모든 정보를..

[프로그래머스] 선입 선출 스케줄링 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/12920 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 단순 반복문으로 시도하면 시간 초과 및 효율성 실패가 발생하는 문제이진탐색으로 해결할 수 있다 import java.util.*;class Solution { public int solution(int n, int[] cores) { int answer = 0; int min = 0, max = 10_000 * n; int work = 0, tim..

[프로그래머스] 표 편집 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  표를 의미하는 PriorityQueue와 삭제한 행을 담기 위한 stack을 만들고 cmd를 바탕으로 반복문을 실행하면 되지 않을까 생각했지만, 그러면 시간 초과가 생길 거 같아서 다른 방법을 생각했다. 현재 위치, 표의 사이즈 그리고 StringBuilder를 활용해서 쉽게 해결할 수 있었다.import java.util.*;class Solution { public String solu..