전체 글
-
0926_프로그래머스 #42577. 전화번호 목록알고리즘 2024. 9. 26. 00:11
문제https://school.programmers.co.kr/learn/courses/30/lessons/42577#qna 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드1. deque()을 활용한 코드 -> 오답from collections import dequedef solution(phone_book): answer = True flag = 0 phone_book = deque(sorted(phone_book, key=lambda x:len(x))) for i in range(len(phone_book) - 1): ..
-
0924_프로그래머스 #43162. 네트워크알고리즘 2024. 9. 24. 23:01
문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드def solution(n, computers): def dfs(node, connect, visited): visited[node] = 1 for neighbor in connect[node]: if visited[neighbor] == 0: dfs(neighbor, connect, visited) ..
-
0924_프로그래머스 #155651. 호텔 대실알고리즘 2024. 9. 24. 22:11
문제https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드from collections import dequedef solution(book_time): def int_time(time): return int(time[0:2]) * 60 + int(time[3:]) book_times = deque(sorted([[int_time(i[0]), int_time(i[1]) + 10] for i in book_time])) ..
-
0716_백준 알고리즘 #14719. 빗물알고리즘 2024. 7. 16. 21:32
문제2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까?입력첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500)두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다.따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다.출력2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라.빗물이 전혀 고이지 않을 경우 0을 출력하여라.코드H, W = map(int, input().split())height = list(map(int, inpu..
-
0712_백준 알고리즘 #16967. 배열 복원하기알고리즘 2024. 7. 14. 14:56
문제https://www.acmicpc.net/problem/16967 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐진다.즉, 배열 B의 (i, j)에 들어있는 값은 아래 3개 중 하나이다.(i, j)가 두 배열 모두에 포함되지 않으면, Bi,j = 0이다.(i, j)가 두 배열 모두에 포함되면, Bi,j = Ai,j + Ai-X,j-Y이다.(i, j)가 두 배열 중 하나에 포함되면, Bi,j = Ai,j 또는 Ai-X,j-Y이다.배열 B와 정수 X, Y가 주어졌을 때, 배열 A를 구해보자.입력첫째 줄에 네 정수 H, W, X..
-
0711_백준 알고리즘 #29700. 우당탕탕 영화예매알고리즘 2024. 7. 14. 14:00
문제https://www.acmicpc.net/problem/29700 도은이는 동아리 문화의 날을 맞이하여 동아리원들과 함께 좌석이 𝑀$M$행 𝑁$N$열의 직사각형 모양으로 배치되어 있는 영화관에서 영화를 보기로 했다. 도은이는 동아리원의 유대감을 중요하게 생각하기 때문에 이미 예매가 완료된 좌석을 피해 동아리원들이 모두 가로로 이어서 앉을 수 있도록 자리를 예매하고 싶어 한다. 도은이를 도와 모든 동아리원들이 가로로 이어서 앉을 수 있도록 예매하는 경우의 수는 총 몇 가지가 있을지 구해보자. 단, 예매한 좌석은 동일하지만, 각 사람이 앉는 위치만 바뀌는 경우는 한 가지로 본다.입력첫째 줄에 영화관 세로줄의 개수 𝑁(1≤𝑁≤1000)과 가로줄의 개수 𝑀(1≤𝑀≤5000), 영화를 관람할 동..
-
0710_백준 알고리즘 #9655. 돌 게임알고리즘 2024. 7. 13. 15:58
문제https://www.acmicpc.net/problem/9655 돌 게임은 두 명이서 즐기는 재밌는 게임이다.탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.코드N = int(input())if N % 2 == 0: print("CY")else: print("SK") ※ 규칙 찾기 문제인데 .. 이렇게 쉬운 규칙이야 ..? ㅋㅋ..
-
0708_백준 알고리즘 #11403. 경로 찾기알고리즘 2024. 7. 13. 15:17
문제https://www.acmicpc.net/problem/11403 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.입력 첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래프의 인접 행렬이 주어진다. i번째 줄의 j번째 숫자가 1인 경우에는 i에서 j로 가는 간선이 존재한다는 뜻이고, 0인 경우는 없다는 뜻이다. i번째 줄의 i번째 숫자는 항상 0이다.출력 총 N개의 줄에 걸쳐서 문제의 정답을 인접행렬 형식으로 출력한다. 정점 i에서 j로 가는 길이가 양수인 경로가 있으면 i번째 줄의 j번째 숫자를 1로, 없으면 0으로 출력해야 한다.코드impo..