본문 바로가기

알고리즘29

[백준] 알람 시계 [C++, 시간 계산을 어떻게 생각 했을까?] 구현 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 코드 #include using namespace std; int time (int h, int m) { if (m - 45 < 0) { if (h == 0 ) { h = 24; } } int result = ((h*60)+m)-45; return result; } int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); int h, m; .. 2023. 8. 28.
[백준] 전화번호 목록 [코드 + 생각도 못했던 부분은?] 구현 & 문자열 https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) for i in range(t): n = int(input()) number = [input().strip() for i in range(n)] number.sort() ori = True for j in range(len(number)-1): stand .. 2023. 8. 24.
[백준] 놀라운 문자열 [해설 + 풀이 코드 + 왜 오래 걸렸을까] 구현 & 완전탐색 https://www.acmicpc.net/problem/1972 1972번: 놀라운 문자열 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문 www.acmicpc.net 코드 import sys while True: string = input().strip() if string == '*': break flag = True for i in range(len(string)-1): check = [] answer = 0 for j in range(len(string)-(i+1)): for k in range(i+j+1, (i+j+1)+1): word.. 2023. 8. 15.
[백준] 경비원 (BFS풀이 + 해설 + 어떻게 생각 했을까) 구현 & BFS & 시뮬레이션 & 수학? https://www.acmicpc.net/problem/2564 2564번: 경비원 첫째 줄에 블록의 가로의 길이와 세로의 길이가 차례로 주어진다. 둘째 줄에 상점의 개수가 주어진다. 블록의 가로의 길이와 세로의 길이, 상점의 개수는 모두 100이하의 자연수이다. 이어 한 줄 www.acmicpc.net 코드 import sys from collections import deque input = sys.stdin.readline r, c = map(int, input().split()) shop = int(input()) arr = [[0] * (r+1) for _ in range(c+1)] shop_cordi = [] x, y = 0, 0 def cordi_c.. 2023. 8. 8.