알고리즘/백준 3

[백준] 10814번: 나이순 정렬

문제 https://www.acmicpc.net/status?user_id=daum4572&problem_id=10814&from_mine=1 """ 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어짐. 회원들의 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬. """ 수정 전 코드 import sys input = sys.stdin.readline class Solution(): def ageSort(self): N = int(input().rstrip()) judge = list() for i in range(N): age, name = input().rstrip().split(" ") judge.append((int(age), name)) judge..

알고리즘/백준 2024.01.17

[백준] 17144번: 미세먼지 안녕!

문제 이해 R(행) × C(열)을 입력으로 받고, T(초)를 입력받는다. R × C 크기 만큼의 숫자를 입력 받는다. 이때, 1번 째 열에 공기청정기가 설치되고 -1로 나타낸다. 확산 순환 문제 풀기 from sys import stdin from typing import List ccw = globals() def rotate(A: List[List[int]]) -> List[List[int]]: for i in range(ccw-2, -1, -1): A[i+1][0] = A[i][0] for i in range(0,C,1): A[0][i] = A[0][i+1] for i in range(0,ccw): A[i][-1] = A[i+1][-1] for i in range(C,1,-1): A[ccw][i] ..

알고리즘/백준 2024.01.15

[백준] 9095번: 1, 2, 3 더하기

소요 시간 : 95 M 문제 이해하기 하나의 정수 N이 주어질 때, 이 N을 1, 2, 3의 합으로 나타낼 수 있는 순열의 수를 구하라. 예를 들어, N = 4 인 경우, 총 7가지로 나타낼 수 있다. 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 1 + 3 3 + 1 2 + 2 문제 풀이 N이 4인 경우를 생각해 봤을 때, 나올 수 있는 경우는 7가지였다. 이를 리스트로 나타내면 [1,1,1,1], [1,1,2], [1,2,1], [2,1,1], [1,3], [3,1], [2,2]이다. 항상 N을 1만을 사용하여 나타낼 수 있는 경우는 1가지이다. 2를 한번 사용하고 나머지를 1로 나타낼 수 있는 경우는 N가지이다. 갑자기! 깊이 우선 탐색으로 풀면 좋은 것 같다. 첫 ..

알고리즘/백준 2024.01.11