본문 바로가기

Algorithm

(2139)
(Python) - 백준(BOJ) 23972 : 악마의 제안 https://www.acmicpc.net/problem/23972 23972번: 악마의 제안 첫째 줄에 악마가 제안한 정수 K와 N이 공백을 사이에 두고 주어진다. (1 ≤ K, N ≤ 200,000,000) www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 k, n을 입력해줍니다. 📔 풀이과정 정답 x에 대해 손해보지 않는다면 다음 공식이 성립합니다. x >= (x - k) * n x에 대해 이항하면 x >= (k*n) / (n-1)가 됩니다. 답은 두 가지 경우가 됩니다. 1. n이 1일 때 무조건 손해보므로 -1을 출력합니다. 2. 아닌 경우 공식을 적용한 답을 출력합니다. 정수형이므로 나머지가 남는다면 1을 더해줍니다. 📔 정답출력 정답을 출력합니다. 📕 Code ..
(C++) - 백준(BOJ) 12840 : 창용이의 시계 https://www.acmicpc.net/problem/12840 12840번: 창용이의 시계 창용이는 여름을 맞이하여 ‘정창용’ 이름이 쓰인 한정판 섬머 에디션 시계를 구입했다. 왠지 오늘은 001도 가고 싶지 않고 시계를 가지고 놀고만 싶다. 우린 방에 있는 창용이가 시계를 가지고 www.acmicpc.net 시간에 대한 개념을 이용한 구현 + 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 시간 h, 분 m, 초 s, 쿼리 수 q, 명령어 t, 명령어가 1또는 2인 경우 입력받을 c, 현재 시간초를 저장할 sec를 선언 후 적절히 입력받습니다. 📔 풀이과정 입력받은 시, 분, 초를 모두 초에 대해 환산하고 sec에 값을 저장합니다. 23시 59분 59초인 상황에서 1초가 지나면 다음날이 되는 ..
(C++) - 백준(BOJ) 24356 : ЧАСОВНИК https://www.acmicpc.net/problem/24356 24356번: ЧАСОВНИК Група ученици излезли на разходка след училище. При тръгване електронният часовник на Тони показвал t1 часа и m1 минути. Те обикаляли около ез www.acmicpc.net 시간차를 구하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 t1, m1, t2, m2, 시간 차를 저장할 diff를 선언한 뒤 적절히 입력받습니다. 📔 풀이과정 m1, m2에 각각 분으로 환산한 값을 저장합니다. m1 > m2인 경우는 하루가 지난 경우이므로 m2에 하루만큼의 분을 더해줍니다. diff에 m2 - m1값을 저..
(C++) - 백준(BOJ) 17618 : 신기한 수 https://www.acmicpc.net/problem/17618 17618번: 신기한 수 평소에 수에 대한 관심이 많은 아이인 민철이는 오늘도 노트에 연필로 수를 더하거나 빼거나 곱하거나 나눠보면서 시간을 보내고 있다. 그러다가 18이라는 수는 신기한 성질을 가진다는 것을 알 www.acmicpc.net 모든 수를 검사하는 brute force로 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 범위 n, 정답을 출력할 ans를 선언한 뒤 n을 입력해줍니다. 📔 풀이과정 n이 최대 1천만이므로 1초 이내로 정답을 맞출 수 있었습니다. 1. n만큼 for문을 돌며 또 for 문을 수행할 수 있습니다. 각 자릿수는 최대 8자리이기 때문입니다. 따라서 for문을 수행해서 합을 구했습니다. 그 값을 지역변수..
(Python) - 백준(BOJ) 10834 : 벨트 https://www.acmicpc.net/problem/10834 10834번: 벨트 첫 줄에는 벨트의 개수를 나타내는 자연수 M(1 ≤ M ≤ 1,000)이 주어진다. 다음 M개의 줄에는 1번 벨트부터 순서대로 벨트로 이어진 두 바퀴의 회전수의 비를 나타내는 두 개의 양의 정수 a, b와 벨 www.acmicpc.net 간단 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 벨트 종류의 개수 m, 마지막 바퀴의 분당 회전수 ans, 마지막 바퀴의 회전방향 rot를 선언 후 적절히 입력받습니다. 📔 풀이과정 i번째 바퀴를 a, i+1번째 바퀴를 b, 그 때의 회전 방향을 r이라고 가정해 변수를 선언해주어 m만큼 입력받습니다. 1번째 바퀴 * 2번째 바퀴가 2번째 바퀴의 회전 수 입니다. 이후에는 i번째..
(C++) - 백준(BOJ) 11312 : 삼각 무늬 - 2 https://www.acmicpc.net/problem/11312 11312번: 삼각 무늬 - 2 무엇이든 덮어버리는 것을 좋아하는 지은이는 한변의 길이가 A인 정삼각형을 한변의 길이가 B인 정삼각형으로 완전히 덮어 버리고자 한다. 두개의 정수 A, B 가 주어지고, B ≤ A 이고, A를 B로 www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 https://codecollector.tistory.com/1429 (C++) - 백준(BOJ) 11320 : 삼각 무늬 https://www.acmicpc.net/problem/11320 11320번: 삼각 무늬 - 1 무엇이든 덮어버리는 것을 좋아하는 구사과는 한 변의 길이가 A인 정삼각형을 한 변의 길이가 B인 정삼각형으로 완전히 덮어버리고자 ..
(C++) - 백준(BOJ) 13118 : 뉴턴과 사과 https://www.acmicpc.net/problem/13118 13118번: 뉴턴과 사과 첫 번째 줄에 사람들의 위치를 나타내는 네 정수 p1, p2, p3, p4 (−109 ≤ p1 < p2 < p3 < p4 ≤ 109)가 공백을 사이로 두고 주어진다. i번 (1 ≤ i ≤ 4) 사람은 (pi, 0) 위에 서 있다. 두 번째 줄에 사과의 정보 www.acmicpc.net 간단한 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 사람 5명의 위치를 의미하는 1차원 배열 p, 원의 중심 좌표 (x, y)와 반지름 r, 정답을 출력할 ans를 선언 후 적절히 입력받습니다. 📔 풀이과정 사과가 x축에 닿을 때까지 떨어지므로 y축은 무시해도 됩니다. 또한 수직으로 떨어지므로 원의 중심 좌표중 x의 값만 ..
(C++) - 백준(BOJ) 1417 : 국회의원 선거 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 우선순위 큐를 이용하는 자료구조 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 총 후보 수 n, 다솜을 찍은 사람 수 dasom, 정답을 출력할 변수 ans, 우선순위 큐 pq를 선언 후 적절히 입력받습니다. 📔 풀이과정 우선순위 큐의 default는 max heap입니다. 즉, top에는 항상 최댓값을 가지고 있습니다. pq에 원소가 존재하며 항상 top만 비교하며 dasom값 이상인..