본문 바로가기

Algorithm/Implementation

(750)
(C++) - 백준(BOJ) 9848 : Gift https://www.acmicpc.net/problem/9848 9848번: Gift The first line contains 2 integers n and k, where n (3 ≤ n ≤ 100) is the number of days, and k (0 < k ≤ 100,000) the desired improvement (in milliseconds). Whenever Jacqueline’s timing reduces by at least k milliseconds over the previous day’s ti www.acmicpc.net 간단 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 기록한 날 수 n, 선물을 받기 위한 기록단축 크기 k, 정답을 출력할 ans, 그 날 기록 re..
(C++) - 백준(BOJ) 25238 : 가희와 방어율 무시 https://www.acmicpc.net/problem/25238 25238번: 가희와 방어율 무시 메이플스토리 몬스터는 방어율 수치가 있습니다. 이 방어율 수치의 일정 %를 무시하는 것을 방무라고 합니다. 유저는 아이템을 사거나, 특정한 스킬 레벨을 올려서 방무 수치를 올릴 수 있습니 www.acmicpc.net if문을 써보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 방어율 수치 a, 방무 % b를 선언 후 입력받습니다. 📔 풀이과정 체감 방어율 수치 = a * (100-b)%가 됩니다. 📔 정답출력 체감 방어율 수치가 100이상이면 데미지를 줄 수 없으므로 0을 아니라면 1을 출력합니다. 📕 Code #include using namespace std; double a, b; int main..
(C++) - 백준(BOJ) 23037 : 5의 수난 https://www.acmicpc.net/problem/23037 23037번: 5의 수난 키파는 문득 3과 4의 견고한 벽에 가로막혀 스포트라이트를 받지 못하는 5를 떠올렸다. '세상에 얼마나 많은 것들이 5와 관련이 있는데!' 키파는 5가 쓰이는 곳을 떠올리기 시작했다. 사람의 손가 www.acmicpc.net 간단한 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 수 s, 정답을 출력할 변수 ans를 선언 후 적절히 입력받습니다. 📔 풀이과정 문자열 s형태로 입력받은 후 for loop를 수행해 각 자리의 수를 확인합니다. 해당 자리 수의 5제곱을 구해 ans 누적으로 더해줍니다. 📔 정답출력 ans를 출력합니다. 📕 Code #include using namespace std; string ..
(C++) - 백준(BOJ) 20361 : 일우는 야바위꾼 https://www.acmicpc.net/problem/20361 20361번: 일우는 야바위꾼 첫째 줄에 N (3 ≤ N ≤ 200,000), X (1 ≤ X ≤ N), K (1 ≤ K ≤ 100,000)가 공백으로 구분되어 주어진다. 둘째 줄부터 K개의 줄에는 순서대로 바꾼 두 컵의 위치 Ai, Bi (1 ≤ Ai, Bi ≤ N, Ai ≠ Bi)가 공백 www.acmicpc.net swap 함수를 사용해보는 간단한 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 컵 개수 n, 공 위치 ballPos, 바꾼 횟수 k, 정답을 출력할 ans, 각 컵의 위치 vector cups를 선언한 후 적절히 입력받습니다. cups의 원소는 초기에 i번째 index에 i번째 컵이 있다고 생각해 for loop를 수행..
(C++) - 백준(BOJ) 10384 : 팬그램 https://www.acmicpc.net/problem/10384 10384번: 팬그램 팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다. 다음은 유명한 팬그램 중 하나이다. The quick brown fox jumps over a lazy dog 더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용 www.acmicpc.net 문자열을 이용한 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case 수 t, 문자열 s를 선언한 후 입력받습니다. 📔 풀이과정 1. 특수기호와 대문자를 걸러내기 위한 함수 getFilteredStr를 수행합니다. 대문자가 있으면 소문자로 바꾸고 특수기호는 제거합니다. 2. getResultStr를 수행합니다. 알파벳이 나온 개수를 세준 후 v..
(C++) - 백준(BOJ) 14709 : 여우 사인 https://www.acmicpc.net/problem/14709 14709번: 여우 사인 첫 번째 예시는 엄지손가락과 중지, 약지와 중지, 엄지손가락과 약지가 서로 닿아 있고 검지와 새끼손가락은 다른 손가락과 닿아 있지 않으므로 여우 사인이라고 할 수 있다. 두 번째 예시는 검 www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 손가락이 맞닿아 있는 상태를 나타내는 이차원 배열 fingerGraph, 나타낼 상태 개수 n을 입력 후 n개의 상태를 입력받습니다. 📔 풀이과정 다음 상태를 확인해 맞다면 여우사인입니다. 1. 엄지 중지 2. 엄지 약지 3. 중지 약지 4. 검지와 새끼는 펴져 있어야 합니다. 📔 정답출력 1 ~ 4까지 맞다면 "Wa-pa-pa-pa-pa-pa-p..
(C++) - 백준(BOJ) 20053 : 최소, 최대 2 https://www.acmicpc.net/problem/20053 20053번: 최소, 최대 2 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. www.acmicpc.net 간단한 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case 수 t, 정수 개수 n, 정답을 출력할 minNum, maxNum을 선언 후 적절히 입력받습니다. * 매 test case마다 최대 최소의 초기값을 갱신해줘야 합니다. 📔 풀이과정 수 x를 입력받을 때마다 최소값을 minNum에, 최댓값을 maxNum에 저장해줍니다. 📔 정답출력 매 test case마다 minNum, maxNum을 출력해줍니다. 📕 Code #include #define MAX 0x3f3f3f3f #defin..
(C++) - 백준(BOJ) 18883 : N M 찍기 https://www.acmicpc.net/problem/18883 18883번: N M 찍기 총 N개의 줄을 출력해야 한다. 각 줄에는 M개의 정수를 공백 한 칸으로 구분해 출력해야 한다. 1번 줄에는 1부터 M까지, 2번 줄에는 M+1부터 2×M까지, ..., N번 줄에는 (N-1)×M+1부터 N×M까지 출력해야 www.acmicpc.net 간단 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 행 n, 열 m을 선언 후 입력받습니다. 📔 정답출력 i행 j열에 해당하는 수는 i * m + j가 됩니다. 이를 출력해줍니다. 시작과 끝에 공백이 있으면 안되고 줄의 마지막은 '\n'로 끝나야함에 주의하며 출력합니다. 📕 Code #include using namespace std; int n, m; in..