목록programmers (47)
어흥
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 1. 주의할 점 - 문제에 적힌 대로만 구현한다 - 빈 문자열 처리를 알맞게 한다 2. 구현 - DFS() 함수에서 다음과 같은 작업을 순차적으로 한다 - 넘겨 받은 파라미터가 빈 문자열이면 그대로 반환한다 - 넘겨 받은 파라미터를 균형잡힌 괄호 문자열 U와 나머지 부분인 V로 나눈다 - isComplete 함수를 통해 U가 올바른 괄호 문자열인지 확..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 1. 주의할 점 - 구현해야 하는 조건이 많다 - 2개의 좌표를 어떤 방식으로 저장할 것인지 정한다 2. 구현 - BFS를 통해 문제를 해결한다 - Info 객체를 통해 로봇의 정보를 저장한다. 로봇의 한 좌표와 어떤 방향에 다른 좌표가 위치해 있는지 저장한다. - 우선순위큐 pq에 로봇의 정보를 담으며, 소요 시간의 오름차순으로 정렬한다 - Board의 정보를 static 변수..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/77886 코딩테스트 연습 - 110 옮기기 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. x에 있는 "110"을 뽑아서, 임의의 위치에 다시 삽입합니다. 예를 programmers.co.kr 1. 주의할 점 - 브루트포스로 풀지 않는다 - 선형시간(O(N))내로 푼다 2. 구현 - 입력 받은 문자열에 대해 110의 개수를 확인한다 - 110을 제외한 문자열을 Deque에 담도록 한다 - 110의 개수가 1개 이상일 때, 문자열 어디에 삽입하면 사전 순서로 가장 빠를지 예상한다 Deque에는 다음과 같은 형태만 들어..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 1. 주의할 점 - DFS가 아닌 점화식을 통해 문제를 해결한다 2. 구현 - DP[][]를 통해 각 지점까지 거쳐간 숫자들의 합의 최대값을 저장한다 - 해당 지점에서 왼쪽 아래와 오른쪽 아래로 갔을 때 각 지점의 최대값을 갱신한다 - 가장 아랫변에 위치한 DP[][]값의 최대값을 반환한다 import java.util.*; import java.io.*; class Solution { static int dp[][]; pu..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/1837?language=java 코딩테스트 연습 - GPS edge_list [[1, 2], [1, 3], [2, 3], [2, 4], [3, 4], [3, 5], [4, 6], [5, 6], [5, 7], [6, 7]] programmers.co.kr 1. 주의할 점 - BFS/DFS로 시도하면 TLE 혹은 '틀렸습니다'라는 문구가 출력된다 - DP로 접근한다 2. 구현 - 단순하게 그래프 문제라고 생각하고 DFS/BFS로 접근했다가 TLE와 '틀렸습니다'의 연속..(다만 이때, 1개의 채점에 여러개의 TC가 존재하여 1개라도 TLE 또는 메모리초과 발생시 틀렸습니다로 나타난다는 사람들의 의견이 존..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42898?language=cpp# 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 1. 주의할 점 - 1열과 1행 전부가 도달 가능하지 않을 수 있다 - 연산 이후 값을 저장할 때 MOD를 활용한다 2. 구현 - Arr[M][N] 배열에 (M,N)까지 도착 가능한 방법의 수를 MOD로 나눈 값을 저장한다 - Set을 이용하여 웅덩이의 위치를 저장한다 - [1,1]에 시작하여 1열과 1행에 1을 ..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 1. 주의할 점 - 스택을 활용하여 해결한다 - 짝지어 제거한 이후, 문자열을 새로 저장할 필요가 없다 2. 구현 - 문자열을 전부 비교하며, 스택이 빈 경우에는 문자를 그대로 넣는다 - 만약 스택이 비지 않았다면, 스택의 Top과 현재 문자를 비교하여 같으면 Pop, 다르면 Push를 수행한다 - 모든 문자열에 대해 검사를 한 후, 스..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42584?language=cpp 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 1. 주의할 점 - Stack을 이용하여 해결한다 2. 구현 - Stack에 Prices의 인덱스를 담는 방식으로 진행한다 - Stack의 Top의 원소에 해당하는 Prices보다 현재 Prices(val)가 크거나 같으면 Stack에 추가한다 - 아니라면 Stack의 원소를 뽑아내여 ..