문제분석https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr n*m 보드에 석유가 있는 곳을 1으로 나타내고, 각 상하좌우 기준 인접 석유끼리는 하나의 집합으로 여길 수 있다.각 col (m line)에 대해서 시추관을 넣을 때 팔 수 있는 최대 석유의 양을 구하는 문제 아주 포멀한 bfs문제다. 전체 배열 원소에 대해 석유가 있다면 (1이라면)bfs로 상하좌우에 대해 인접 포인트 중 방문하지 않았고 석유가 있는 포인트를 탐색 대상에 추가해 나가며 석..
문제분석https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2차원 좌표계에서 방문 대상 Point 배열과 로봇이 방문해야 하는 Point 배열이 주어진다.각 로봇은 좌표(r,c)에 대해서 목표 Point에 대해 r을 우선시하여 움직인다. 이때, 로봇이 같은 좌표안에 있는 경우 위험 상황으로 인지한다.최적 경로 이동 시 발생가능한 위험 상황의 수는 ? 길이 자체는 100정도로 작다. 즉, 거의 대부분의 풀이가 시간이내에 들어오게 된다. 로봇의 현재 위치..
문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr정삼각형으로 이루어진 사다리꼴이 주어지고 그 위에 정삼각형을 일부 얹은 도형이 주어지고해당 도형에서 정삼각형 2개를 이어붙인 마름모 혹은 정삼각형으로 색을 칠하는 경우의 수를 구하는 문제다. n의 크기는 10만이니 가능하다면 O(n)에 끝내거나 O(nlongn)에는 끝내야 한다. 처음 들었던 생각은 X개의 정삼각형으로 이루어진 사다리꼴에 대해서 dfs로 접근을 했었다.그리고 최적화를 위해 i..
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; class Solution { public long solution(int n, int m, int x, int y, int[][] queries) { long answer = -1; Set pointList=new HashSet(); pointList.add(new Point(x,y)); for (int i = queries.length-1; i >=0; i--) { Set newPointSet=new HashSet(); int type = queries[i][0]; int dis = queries[i][1]; // System..
import java.util.LinkedList; import java.util.Queue; class Solution { int moveCount; int[][] gameBoard; public int solution(int[][] board, int r, int c) { int answer = 0; moveCount=Integer.MAX_VALUE; gameBoard=board.clone(); if(board[r][c]!=0) dfs(1,r,c,board[r][c]); else dfs(0,r,c,board[r][c]); return moveCount; } void dfs(int depth, int x,int y,int select){ if(depth>=moveCount) return; if(sele..
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public int solution(int[] a) { int answer = 0; Map numberMap=new HashMap(); for (int i : a) { if(numberMap.containsKey(i)){ numberMap.put(i,numberMap.get(i)+1); }else{ numberMap.put(i,1); } } List maxKeyList=new ArrayList(); int maxValue=0; for (Integer integer : numberMap.keySet()..