Algorithm/Simulation 35

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

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이우선 시작지점과 거쳐야하는 지점을 구한다.증가하는 시간을 인덱스로 두고 이동하는 좌표들을 dict에 모두 저장한다.이 때 r좌표의 이동을 c좌표보다 우선한다는 조건에 따라 사방탐색이 아닌 [r, c]의 값을 따로 이동시켜야하는 것이 핵심이다.이동을 마쳤다면 dict에서 같은 시간에 같은 경로를 방문한 케이스가 있는지 확인하여 있다면, answer을 증가시킨다.defaultdict✅ 일반 딕셔너리는 key가 없을 때 오류가 나지만, defaultdict는 key가 없으면 자동으로 기본값을 만들어준다.→ key가 없는데도 path[1]에 바로 ...

[Python] 프로그래머스 코드 챌린지 택배 상자 꺼내기

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 풀이1. 상자를 쌓기 위한 높이 계산모듈러 연산 후 나머지가 있으면 한 줄 더 쌓아야 하므로 +1을 추가2. 배열 채우기최종 상자의 개수 n이 될 때까지 배열을 채운다.n보다 커지면 0으로 유지 → 상자를 꺼낼 때 연산하기 쉽게 하기 위함짝수 번째 줄은 반대로 쌓아야 하므로 reverse() 함수 사용3. 상자 꺼내기맨 윗칸이 비어 있으면 동작이 한 번 덜 수행되므로 -1즉, 맨 윗칸이 0이면 비어 있는 것맨 윗칸이 0이 아니면 비어 있지 않으므로→ 전체 높이에서 상자가 있는 열의 크기를 빼준다.코드def solution(n, w, num): ..

[Python] 프로그래머스 PCCP 기출문제 1번 / 동영상 재생기

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 풀이문제를 따라 구현하면 되는 단순 구현 문제이나, 오프닝 구간 처리에 신경써야한다.동영상을 재생하기 전 오프닝 구간에 있다면 오프닝이 끝나는 구간으로 이동 후 연산을 시작해야하고, 모든 연산을 마친 후, 오프닝 구간 체크구현 완료 후 출력 전 한자리 숫자인 경우 앞에 0을 채우기 위해 zfill 함수를 사용하여 출력 형식 변환문제 상황✅ 올바른 오프닝 구간 처리를 위해 고려해야 할 사항현재 시간이 오프닝 구간에 포함되어 있다면, 오프닝이 끝나는 시간으로 이동해야 한다.오프닝이 시작하는 분과 끝나는 분이 같지 않을 경우도 명확하게 체크해야 한다.단..

[Python] 백준 31649번 Milk Exchange

문제https://www.acmicpc.net/problem/31649입력The first line contains N and M.The second line contains a string s1s2…sNs_1s_2\ldots s_Ns1​s2​…sN​ consisting solely of the characters ‘L’ or ‘R’, denoting the direction each cow will pass their milk in.The third line contains integers a1,a2,…,aNa_1, a_2, \ldots, a_Na1​,a2​,…,aN​, the capacities of each bucket.출력Output an integer, the sum of milk among a..

[Python] 백준 14719번 빗물

문제https://www.acmicpc.net/problem/14719입력첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500)두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다.따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다.출력2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라.빗물이 전혀 고이지 않을 경우 0을 출력하여라.문제 풀이물이 고이는 조건양 옆에 자신보다 높은 크기의 블럭이 존재해야한다.물이 고이는 경우 더 작은 크기의 블럭의 크기만큼 빗물이 고인다.더 작은 블럭의 크기 - 현재 ..

[Python] 프로그래머스 최댓값과 최솟값

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이지문대로 구현하면 되는 단순한 구현문제공백을 기준으로 문자열을 자른 후 숫자로 변환해서 가장 큰 수와 작은수를 찾아 다시 문자열로 변환코드def solution(s): numbers = [] answer = '' s = s.split() for i in range(len(s)): numbers.append(int(s[i])) max_val = max(numbers) min_val = min(numbers) answer = str(min_val)+" "+str(max_val) return answer..

[JAVA] 백준 14891번 톱니바퀴

문제 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 입력 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 시계방향 순서대로 주어진다. N극은 0, S극은 1로 나타나있다. 다섯째 줄에는 회전 횟수 K(1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 회전시킨 방법이 순서대로 주어진다. 각 방법은 두 개의 정수로 이루어져 있고, 첫 번째 정수는 회전시킨 톱..

[Java] Swea 1961번 숫자 배열 회전

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 배열을 90도씩 회전 시키면서 저장 한 후, 형식에 맞게 출력한다. rotation 함수 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { // 90도씩 회전시키는 함수 public static int[][] rotation(int[][]arr, int n) { int[][] result = new int[n][n]; for ..

[Python] 백준 1913번 달팽이

문제 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 입력 첫째 줄에 홀수인 자연수 N(3 ≤ N ≤ 999)이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다. 출력 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 출력한다. 입력 예제 7 35 출력 예제 49 26 27 28 29 30 31 48 25 10 11 12 13 32 47..

[Python] 백준 17413번 단어 뒤집기2

문제 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 입력 첫째 줄에 문자열 S가 주어진다. S의 길이는 100,000 이하이다. 출력 첫째 줄에 문자열 S의 단어를 뒤집어서 출력한다. 입력 예제 baekjoon online judge ef gh 출력 예제 noojkeab enilno egduj fe hg 문제 풀이 괄호를 만나는 경우와 문자나 숫자를 만나는 경우, 공백을 만나는 경우 세 가지로 나눠 탐색한다. 열린괄호()를 만날 때 까지 인덱스 증가시킨다. 닫힌 괄호를 만났다면..