본문 바로가기

전체 글105

5014_스타트링크 ▶ 실버 1 (BFS)풀이현재 층에서 이동하는 경우는 1) 올라가거나, 2) 내려가거나 둘 중 하나입니다.또한, 도착 층까지의 최단 경로를 찾는 것이기 때문에 BFS를 사용했습니다. 주의할 점1. 다음 층이 1부터 f 이하여야합니다.2. 이미 방문한 층은 그 경로가 최소이기 때문에 갱신할 필요가 없습니다. 그래서 BFS와 동일하게 visited 배열로 방문여부를 확인해주면 됩니다. 코드# 5014_스타트링크from collections import dequeimport sysinput = sys.stdin.readline()f, s, g, u, d = map(int, input.split())def BFS(f, s, g, u, d): if s == g: return 0 queue .. 2025. 2. 25.
16935_배열 돌리기3 ▶ 골드 5 (구현)풀이삽질 너무 많이한 문제입니다..일단 처음에 1 ~ 6번 다 나눠서 규칙을 찾았습니다.찾은 규칙으로 이중 for문 돌려서 swap 하면 된다고 생각했는데..그렇게 하니까 한 인덱스 당 swap을 두 번 돌아서 제자리로 돌아오게 되었습니다......그 다음으로 생각한 게, 이중 for문 돌려서 규칙에 따라 즉시 print근데 이렇게 하니까 연산 과정이 한 번이면 성공하는데 여러 개일 경우 모든 경우가 다 출력되었습니다......저의 멍청함에 놀라던 중, 마지막으로 생각한 게 연산을 한 번 할 때 규칙에 맞는 새로운 배열을 생성하고,연산이 끝나면 그 새로운 배열을 원 배열로 갱신해는 방식이었습니다.그리고 모든 연산이 끝나고 마지막에 배열을 출력하였습니다.  처음에는 배열 '돌리기' 라는.. 2025. 2. 24.
[Infra] 클라우드 컴퓨팅 클라우드 컴퓨팅인터넷을 통해 컴퓨팅 서비스를 제공하는 것서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 분석 및 인텔리젼스 등이 포함됨종량제 (쓴 만큼 돈을 냄) 가격 책정 모델을 사용하기 때문에 운영 비용 절감 가능즉, 다른 사람이 운영하는 데이터 센터에서 컴퓨팅 성능 및 스토리지를 임대하는 방법이점안정성서비스 수준 계약에 따라 문제가 발생할 경우에도 가동 중지 시간 없이 지속적인 사용자 환경 제공확장성수직적 확장(Scale-up): 가상 머신에 RAM이나 CPU를 추가하여 컴퓨터 용량 늘리기수평적 확장(Scale-out): 리소스의 인스턴스를 추가하여 컴퓨터 용량 늘리기탄력성필요한 리소스를 항상 추가 / 삭제 가능민첩성요구사항이 변경되면 신속하게 배포하고 구성 가능지리적 배포전 세계 지역 데이.. 2025. 2. 24.
11057_오르막수 ▶ 실버 1 (DP)풀이규칙이 있을거라고 생각하고 작은 자리수만 적어보았습니다.# 1 -> 0 1 2 3 4 5 6 7 8 9# 2 -> 00 / 01 11 / 02 12 22 / 03 13 23 33 / 04 14 24 34 44 / ...# 3 -> 000 / 001 011 111 / 002 012 112 022 122 222 /# 4 -> 0000 / 0001 0011 0111 1111# dp[자리수][끝자리] = dp[자리수][끝자리 - 1] + dp[자리수 - 1][끝자리] 적다보니 점화식이 보여서 DP임을 깨달았습니다.이중 for문을 돌려 (시간 복잡도: O(N), 자리수가 0 ~ 9이므로.)dp 배열을 채워줍니다.해당 자리수의 가장 끝자리가 모두 그 전 자리 값들이 누적된 수이므로 답은 dp.. 2025. 2. 24.
[Programmers] Lv.2 _ [PCCP 기출문제] 2번 / 석유 시추 풀이1. 시추 가능한 덩어리 별 크기를 카운트2. 해당 덩어리가 포함된 y 축에 덩어리 크기를 더해준다. 덩어리 별 크기 카운트를 위해서는 2차원 BFS를 사용했다.그리고 해당 덩어리가 포함된 y 축을 구하기 위해 BFS로 좌표를 돌면서 set을 통해 y 값을 넣어줬다.한 덩어리 당 BFS가 종료되면 y 값이 담긴 set을 순회하며 해당 y 값에 덩어리 크기를 더해줬다. 효율성 검사도 포함되어 있기 때문에 처음엔 통과하지 못했다.최대한 자료구조를 덜 쓰기 위해queue 라이브러리 대신 list를 사용했고, set을 사용하였다.코드queue = []def bfs(land, oils, visited): dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] cnt = 0 c.. 2025. 1. 18.
[Programmers] Lv.2 _ [PCCP 기출문제] 3번 / 충돌 위험 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/340211 풀이운송 포인트 2차원 배열: points운송 경로 2차원 배열: routes 흐름은1. 각 운송 로봇 경로의 모든 칸을 배열에 담는다.      1-1.  모든 운송 로봇을 한 배열에 담는다.      1-2. 운송 포인트 별로 출발지 - 도착지를 갱신하며 모든 운송 포인트를 돈다.2. 시점을 순회하며 같은 충돌 위험 좌표의 개수를 센다.      2-1. 같은 좌표가 2개 이상이어야 한다. 운송 로봇의 경로는 1) 출발지 좌표 r  == 도착지 좌표 r 될 때까지 r 좌표 한 칸씩 전진2) 출발지 좌표 c == 도착지 좌표 c 될 때까지 c 좌표 한 칸씩 전진이 경로를 리스트에 담는다... 2025. 1. 6.