[프로그래머스] 기지국 설치 - Java
·
PS/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그리디 문제라고 볼 수 있다. 우선, 이미 설치되어있던 기지국의 위치를 확인하며 i 값을 바꾸는게 포인트이다. 이미 설치되어있던 기지국보다 i값이 작으면 해당 값에는 무조건 기지국을 설치해야 하므로,`i = w * 2 + i`를 해주고 `count`를 증가시킨다. i값이 기지국이 설치되어있는 위치라면 기지국이 설치된 값 바깥으로 옮기고 기지국 인덱스를 증가시켜준다.만약 i값이 모든 기지국 보다 뒤에 ..
[프로그래머스] 등굣길 - Java
·
PS/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 어릴 때, 확률과 통계에서 풀었던 것처럼 천천히 갈 수 있는 길을 계산해보면 된다. 배열을 순차적으로 돌면서 내 위치에서 왼쪽 길과 윗 길을 확인해서 웅덩이가 있다면 큰 값을 선택하고그렇지 않다면 합친 값을 내 위치에 기록한다. 이때 중요한 건 1000000007로 나눠야 한다. class Solution { public int solution(int m, int n, int[][] puddle..
[프로그래머스] 퍼즐 게임 챌린지 - Java
·
PS/프로그래머스
요즘 코딩 테스트를 보면 `이분탐색`과 `완전탐색`이 정말 많이 나오는 것 같다.그래서, 알고리즘 스터디에서 `이분탐색` 주에도 열심히 문제를 풀었고 혼자서도 많은 `이분탐색`문제를 접해보았다. 그러다가 요번에 프로그래머스에서 새롭게 나온 PCCP 문제를 접근했는데 와 이건 이분탐색 문제다 라고 바로 생각이 났다. 이전까지는 이분탐색 문제를 보면 그리디라고 생각이 들었는데 이제는 조금 감이 생긴 것 같다.  https://school.programmers.co.kr/learn/courses/30/lessons/340212  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers..
[프로그래머스] 순위 - Java
·
PS/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  주석에 설명해 놓긴 했지만, 뭔가 그래프 문제보다 DP에 가까운 느낌이라고 해야되나플로이드 워샬 같기도 하면서 살짝 다른거 같다. 로직 자체는 모든 정점을 방문하면서 확인한다는 부분은 비슷하지만, 결국 최단거리를 구하지도 않을 뿐더러반복문 순서도 플로이드-워샬과 살짝 다르다. 플로이드 워샬은 k를 돌면서 점차 가장 짧은 걸 구해가지만, 이 문제는 그냥 i번째에는 i번째에 끝나서 뭔가 좀 다른 느낌이..
[프로그래머스] 리코쳇 로봇 - Java
·
PS/프로그래머스
BFS로 분 프로그래머스 문제이다. import java.util.*; // 최소 몇 번 이동인지 이므로 BFS // 장애물이나 벽을 만날 때 까지 이동이 1번의 이동 // x, y 좌표를 표기하기 위한 Node 클래스 필요 // BFS를 위해 사용할 Queue 필요 class Solution { static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static int N; static int M; public int solution(String[] board) { int answer = 0; int start_x = -1, start_y = -1; N = board.length; M = board[0].length(); for(int i ..
[프로그래머스] 요격 시스템
·
PS/프로그래머스
스케줄링과 비슷한 레벨 2의 요격 시스템 문제를 풀어보았다. 스케줄링 문제는 개념은 알고있었는데 관련 문제는 처음 풀어보는 것 같다. import java.util.*; // A나라의 미사일은 X축에 평행하게 좌표로 주어짐 // B나라에서 최소한의 미사일을 사용하여 요격 // 시간복잡도 O(N^2)