본문 바로가기

PS/프로그래머스

(34)
[프로그래머스 2021 카카오 채용연계형 인턴십] 표 편집 - JAVA(자바) 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr해설문제 조건을 보면 행의 개수 n의 범위가 5 ≤ n ≤ 1,000,000 이고 명령어들이 담긴 배열 cmd의 범위는 1 ≤ cmd ≤ 200,000 이 된다. 모든 행에 대해서 삽입, 삭제를 배열에서 하면 O(n*cmd) 이 돼서 시간 초과가 된다. 그래서 처음 생각은 삽입, 삭제에 유리한 LinkedList를 고려했지만 삽입,삭제가 O(1) 이지 그 노드까지 가려면 O(n)이 걸린다. (..
[프로그래머스] 순위 검색 - JAVA(자바) 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드import java.util.*;class Solution { HashMap> map = new HashMap(); // info 배열의 크기(m) list : map.values()){ list.sort((o1,o2) -> o1 - o2); } // 3. 각 query에 맞는 지원자들을 찾고 이분탐색으로 target 이상의 점수를 받은 지원자 수를 구한다: O(n*logm) int[] answer = new int[q..
[프로그래머스] 경주로 건설- JAVA(자바) 문제: https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드:import java.util.*;public class Main { public static void main(String[] args) { Solution solution = new Solution(); int[][] board = { {0,0,1}, {0,0,0}, {0,0,..
[프로그래머스] 징검다리- JAVA(자바) 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드:import java.util.*;class Solution { public int solution(int distance, int[] rocks, int n) { int answer = 0; Arrays.sort(rocks); int left = 1; // 가능한 최소 거리 중 최솟값 int right = distance; //..
[프로그래머스] 석유 시추- JAVA(자바) 문제: https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이:처음에는 각 열에 대해서 땅을 하나씩 내려가면서 총 석유량을 구했지만 중복되는 bfs 때문에 time-out이 발생했다.석유 덩어리를 찾고 그 위치를 기억하면 중복되는 bfs를 하지 않아도 된다.bfs를 할 때 방문한 땅의 y좌표를 set에 저장해 두면 그 석유덩어리가 차지하는 y좌표들을 저장할 수 있다. 그리고 그 oils 배열에 그 y좌표에 해당하는 곳에 bfs로 구한 총 석유량을 누..
[프로그래머스] 가장 큰 수 - JAVA(자바) 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이:import java.util.Arrays;import java.util.Comparator;import java.util.stream.IntStream;class Solution { public String solution(int[] numbers) { StringBuilder sb = new StringBuilder(); int sum = 0; ..
[프로그래머스] 단어 변환 - JAVA(자바) 문제: https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이:class Solution { int answer = Integer.MAX_VALUE; public int solution(String begin, String target, String[] words) { boolean[] visited = new boolean[words.length]; dfs(begin, target, words, visited, 0..
[프로그래머스] 등굣길 - JAVA(자바) 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드: class Solution { static final int NUMBER = 1_000_000_007; static int[][] board; static int[][] dp; // dp[i][j]: 집(1,1)에서 좌표(i,j)까지 가는 최단경로의 개수 public int solution(int m, int n, int[][] puddles) { ..