분류 전체보기
-
[Python][C++] 18111번 마인크래프트Algorithm/Baekjoon 2024. 9. 12. 16:08
문제https://www.acmicpc.net/problem/18111 코드1. Pythonimport sysinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용# n: 세로 크기, m: 가로 크기, b: 초기 인벤토리 블록 개수n, m, b = map(int, input().split())# 블록 배열 입력 받기blocks = [list(map(int, input().split())) for _ in range(n)]# 초기값 설정: 최소 시간(time)과 그때의 높이(height) 초기화time, height = 9223372036854775807, 0 # 큰 값으로 최소 시간 초기화# 가능한 모든 높이(0부터 256까지)에 대해 탐색f..
-
[OS] 운영체제와 컴퓨터Computer Science/OS 2024. 9. 11. 21:08
운영체제사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스로 한정된 메모리나 시스템 자원을 효율적으로 분배한다. 펌웨어(firmware): 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없음 운영체제의 역할CPU 스케줄링과 프로세스 관리메모리 관리디스크 파일 관리I/O 디바이스 관리 운영체제의 구조 GUI(Graphical User Interface)대신 CUI(Command line User Interface)가 있을 수도 있음 시스템콜운영체제가 커널에 접근하기 위한 인터페이스, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용 I/O 요청으로 fs.readFile() 이라는 파일 시스템의 파일을 읽는 함수가 발동했다고 해보자.이 때 유저 모드에서 파일을 읽지 않고 커널 모..
-
[타입 추론] 1. 템플릿 타입 추론 규칙을 숙지하라C++ Theory/Effective Modern C++ 2024. 9. 11. 12:57
규칙 1: 템플릿 타입 추론 도중에 참조 타입의 인수들은 비참조로 취급된다. 즉, 참조성이 무시된다.함수 템플릿의 선언은 대체로 이런 모습이다.templatevoid f(ParamType param); 그리고 이를 호출하는 코드는 대체로 이런 모습이다.f(expr);// 어떤 표현식으로 f를 호출 컴파일 도중 컴파일러는 expr을 이용해서 두 가지 타입을 추론하는데, 하나는 T에 대한 타입 추론이고 또 하나는 ParamType에 대한 타입 추론이다. 이 두 타입이 다른 경우가 많은데, 이는 ParamType에 흔히 const나 참조 한정사(&나 &&를 말한다) 같은 수식어들이 붙기 때문이다. 예를 들어 템플릿의 선언이 다음과 같다고 하자.templatevoid f(const T& param); 그리고 이..
-
[Python][C++] 17626번 Four SquaresAlgorithm/Baekjoon 2024. 9. 11. 00:16
문제https://www.acmicpc.net/problem/17626 코드1. Pythonimport mathn = int(input()) # 입력으로 숫자 n을 받음dp = [0] * (n + 1) # DP 테이블 초기화 (0부터 n까지)dp[1] = 1 # 1은 제곱수 1로만 표현 가능하므로 dp[1] = 1# 2부터 n까지 최소 제곱수의 합을 찾기 위한 반복문for i in range(2, n + 1): min_value = 1e9 # 임의로 큰 값으로 초기화 (최솟값을 찾기 위해) # i보다 작은 제곱수들을 탐색하며 최소 값을 찾음 for j in range(1, int(math.sqrt(i)) + 1): min_value = min(min_val..
-
[Python][C++] 17219번 비밀번호 찾기Algorithm/Baekjoon 2024. 9. 10. 23:24
문제https://www.acmicpc.net/problem/17219 코드1. Pythonimport sysinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용n, m = map(int, input().split()) # n: 저장할 사이트 수, m: 찾을 사이트 수passwords = dict() # 사이트와 비밀번호를 저장할 딕셔너리# n개의 사이트와 비밀번호를 입력받아 딕셔너리에 저장for _ in range(n): site, pwd = input().rstrip().split() # 사이트와 비밀번호를 입력받고 passwords[site] = pwd # 딕셔너리에 사이트를 키로, 비밀번호를 값으로 저장# m개의 사이..
-
[Python][C++] 16928번 뱀과 사다리 게임Algorithm/Baekjoon 2024. 9. 8. 15:28
문제https://www.acmicpc.net/problem/16928 코드1. Pythonimport sysfrom collections import dequeinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용# BFS(너비 우선 탐색) 함수 정의def bfs(v): visited = [0] * 101 # 방문 여부와 이동 횟수를 저장할 리스트 (0~100까지, 총 101칸) visited[v] = 1 # 시작점인 1번 칸은 방문했으므로 1로 설정 q = deque() # 탐색에 사용할 큐 생성 q.append(v) # 시작점(1번 칸)을 큐에 삽입 # 큐가 빌 때까지 BFS 탐색 진행 while q..
-
[Python][C++] 14940번 쉬운 최단거리Algorithm/Baekjoon 2024. 9. 7. 21:45
문제https://www.acmicpc.net/problem/14940 코드1. Pythonimport sysfrom collections import deque # BFS에서 사용할 큐를 위해 deque 라이브러리 임포트input = sys.stdin.readline # 입력을 빠르게 받기 위해 sys.stdin.readline 사용# 상하좌우 이동을 나타내는 방향 벡터 (dx는 x축, dy는 y축 이동을 의미)dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]# BFS(너비 우선 탐색) 함수 정의def bfs(x, y): q = deque() # 큐 생성 q.append([x, y]) # 시작 지점을 큐에 삽입 while q: x, y = q.p..
-
[Python][C++] 11727번 2×n 타일링 2Algorithm/Baekjoon 2024. 9. 6. 08:59
문제https://www.acmicpc.net/problem/11727 코드1. Python# n번째 값을 입력받음n = int(input())# DP 리스트 초기화, 미리 계산된 초깃값들을 저장dp = [0, 1, 3, 5] # 예시로 dp[1] = 1, dp[2] = 3, dp[3] = 5가 주어짐# dp 리스트에 저장된 값이 부족할 경우 n번째 값까지 계산for i in range(len(dp), n + 1): # 점화식을 이용하여 dp[i] 값을 계산 # dp[i-1] + dp[i-2] * 2 의 형태로 계산 dp.append(dp[i - 1] + dp[i - 2] * 2)# n번째 값을 10007로 나눈 나머지를 출력print(dp[n] % 10007) 2. C++#inc..