목록CodingTest (430)
기록방
프로그래머스에서 주관하는 자격증 중 하나인 PCSQL의 Lv2를 취득했다🎉🎉 🚀 왜 따고자 했더라프로그래머스에는 현재 3가지 자격증이 있다. (https://certi.programmers.co.kr/)먼저 PCCP는 코딩전문역량인증시험으로 어려운 난이도의 코딩 자격증이고,CCE는 코딩필수역량인증시험으로 쉬운 난이도의 기초 코딩 자격증이다.그 밖에도 최근에 생긴 SQL 관련 PCSQL 자격증도 생겼는데 이전 PCCP 취득 후 취준 겸 따보고자 했다. (https://soooom.tistory.com/488) 기업 코테에서 sql문제가 있는 경우가 종종있는데, 난이도는 그렇게 어렵지 않기 때문에 Lv2를 목표로 했다. PCSQL은 최근에 생겨서 그런지, 프로그래머스 프로필에 넣을 수 없다. 대신 인..
👉 문제링크🔸 문제 분석 🔸N x M 직사각형 땅에 수영장을 만든다. 격자 속 숫자가 해당 땅의 높이이다.물을 채워야 하는데, 물은 상하좌우 높은 곳에서 낮은 곳으로만 흐르고 격자 밖으로는 무한정 흘러나가 버린다.채울 수 있는 물의 양의 최대값을 출력한다.🔸 문제 풀이 🔸상하좌우 인접 땅으로 흐르는 물의 이동을 구현하기 위해서 BFS를 사용한다.외각에 붙은 땅은 물이 고일 수 없으므로, 역방향 BFS를 통해 이어진 땅들을 모두 체크한다.물이 고일 수 있는 땅들에 물을 채우고 총합을 출력한다.물 높이의 최대값은 2가지 기준을 유의해서 정한다.해당 높이보다 높아지면 물이 흘러나가버리는 경우 : 최대값의 인덱스가 체크된 경우흘러나가지는 않지만, 땅이 높아서 조금 더 높이 물이 고이는 경우 : 최대값의..
👉 문제링크🔸 문제 분석 🔸1, 2, 3의 덧셈으로 n을 만들 수 있는 조합의 수를 출력한다.🔸 문제 풀이 🔸다이나믹 프로그래밍 문제로, dp[n]은 n을 만드는 조합의 수이다.중복을 제거하기 위해 1로 한바퀴, 2로 한바퀴, 3으로 한바퀴 각각 dp를 돌려야 한다.🔸 코드 🔸import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class Main { public static void main(String[] args) throws IOException {..
👉 문제링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🔸 문제 분석 🔸N*N 행렬에서 모든 칸의 숫자(시계)를 0(12시방향)으로 만들어야 한다.0 : 12시, 1 : 3시, 2 : 6시, 3 : 9시한 칸의 시계를 시계방향으로 돌릴 수 있고, 돌리면 상하좌우 인접한 시계도 함께 돌아간다.모든 시계를 12시 방향으로 만드는 최소 조작 횟수를 출력한다.🔸 문제 풀이 🔸여러 경우의 수를 따져봐야 하는데, BruteForce는 O(64^4)이므로 너무 크다.Greedy 접근으로 풀이할 수 있다.시계를 조작하는 순서는 상관 없으므로 위쪽에서 아래쪽 행으..
👉 문제링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🔸 문제 분석 🔸문제는 쿼리 명령에 따라 n x m 격자판에서 이동하는 공의 시뮬레이션 설명이 주어진다.쿼리에 따라 이동했을 때, (x, y) 위치에 도착하는 시작 위치의 개수를 출력한다.🔸 문제 풀이 🔸n, m의 최대값은 1억이고, 쿼리의 개수는 20만이기 때문에 BFS, DFS 등으로 구현하면 시간 초과 or 메모리 초과가 난다.첫 번째 풀이 포인트는 '역방향 탐색'이다.모든 인덱스에서 쿼리를 돌려 (x, y)에 도착하는지 확인하는 것이 아니라,(x, y)부터 시작해 역으로 쿼리를 돌려 도..