Algorithm/Programmers

Algorithm/Programmers

[PCCP 기출문제] 2번 / 석유 시추 [JAVA]

문제분석https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr n*m 보드에 석유가 있는 곳을 1으로 나타내고, 각 상하좌우 기준 인접 석유끼리는 하나의 집합으로 여길 수 있다.각 col (m line)에 대해서 시추관을 넣을 때 팔 수 있는 최대 석유의 양을 구하는 문제 아주 포멀한 bfs문제다. 전체 배열 원소에 대해 석유가 있다면 (1이라면)bfs로 상하좌우에 대해 인접 포인트 중 방문하지 않았고 석유가 있는 포인트를 탐색 대상에 추가해 나가며 석..

Algorithm/Programmers

[PCCP 기출문제] 3번 / 충돌위험 찾기 [JAVA]

문제분석https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2차원 좌표계에서 방문 대상 Point 배열과 로봇이 방문해야 하는 Point 배열이 주어진다.각 로봇은 좌표(r,c)에 대해서 목표 Point에 대해 r을 우선시하여 움직인다. 이때, 로봇이 같은 좌표안에 있는 경우 위험 상황으로 인지한다.최적 경로 이동 시 발생가능한 위험 상황의 수는 ? 길이 자체는 100정도로 작다. 즉, 거의 대부분의 풀이가 시간이내에 들어오게 된다. 로봇의 현재 위치..

Algorithm/Programmers

산 모양 타일링 [JAVA]

문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr정삼각형으로 이루어진 사다리꼴이 주어지고 그 위에 정삼각형을 일부 얹은 도형이 주어지고해당 도형에서 정삼각형 2개를 이어붙인 마름모 혹은 정삼각형으로 색을 칠하는 경우의 수를 구하는 문제다. n의 크기는 10만이니 가능하다면 O(n)에 끝내거나 O(nlongn)에는 끝내야 한다. 처음 들었던 생각은 X개의 정삼각형으로 이루어진 사다리꼴에 대해서 dfs로 접근을 했었다.그리고 최적화를 위해 i..

Algorithm/Programmers

[Lv.3] 공 이동 시뮬레이션 - 자바

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..

Algorithm/Programmers

[Lv.3] 모두 0으로 만들기

6,7,8 런타임 오류 코드 import java.util.*; class Solution { static boolean[] isChecked; // boolean[] isVisited; static long[] valueArr; static Map edgeMap; static long count; public long solution(int[] a, int[][] edges) { isChecked=new boolean[a.length]; // isVisited=new boolean[a.length]; // valueArr=a.clone(); valueArr=new long[a.length]; edgeMap=new HashMap(); count=0; //한 노드 잡고 그 자식 노드들 싹 돌면서 값의 합을..

Algorithm/Programmers

[Lv.3] 가장 먼 노드 -자바

import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; class Solution { public int solution(int n, int[][] edge) { int answer = 0; Queue queue=new LinkedList(); queue.add(new Node(1,0)); int[] minRoot=new int[n+1]; List[] graph=new ArrayList[n+1]; for (int i = 1; i node.cost+ newNode.cost){ minRoot[newNode.idx]=node.cost+ newNode.cost; queue.add(n..

Algorithm/Programmers

[Lv.3] 카드 짝 맞추기 -자바

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..

Algorithm/Programmers

[Lv.3] 스타 수열 -자바

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()..

시롱시롱
'Algorithm/Programmers' 카테고리의 글 목록 (2 Page)