본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 25311 : UCPC에서 가장 쉬운 문제 번호는? https://www.acmicpc.net/problem/25311 25311번: UCPC에서 가장 쉬운 문제 번호는? 대회 참가자는 되도록 일찍 대회의 모든 문제를 한 번씩 읽어 보는 것이 권장됩니다. 이렇게 하면 대회의 전체적인 분위기를 느낄 수 있고, 종종 비교적 쉬운 문제를 빨리 발견해서 속도에서 우 www.acmicpc.net 간단 출력 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 연도 y를 선언 후 입력받습니다. 📔 풀이과정 가장 쉬운 난이도의 문제를 배치하는 것을 선택했으므로 항상 'A'가 먼저 나옵니다. 📔 정답출력 가장 쉬운 난이도 'A'를 출력합니다. 📕 Code #include using namespace std; int y; int main(){ cin >> y; cout
(C++) - 백준(BOJ) 25314 : 코딩은 체육과목 입니다. https://www.acmicpc.net/problem/25314 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net 간단한 출력문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n을 선언 후 입력받습니다. 📔 정답출력 n/4만큼 long을 출력합니다. 마지막엔 int를 출력합니다. 📕 Code #include using namespace std; int n; int main(){ cin >> n; for(int i = 0; i < n/4; i++){ cout
(C++) - 백준(BOJ) 3733 : Shares https://www.acmicpc.net/problem/3733 3733번: Shares A group of N persons and the ACM Chief Judge share equally a number of S shares (not necessary all of them). Let x be the number of shares aquired by each person (x must be an integer). The problem is to compute the maximum value of x. Write a program that www.acmicpc.net 간단한 수식을 출력하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 group 수 n과 주식수 s를 입력받습니다. 📔 정답출력 n과..
(C++) - 백준(BOJ) 16929 : Two dots https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net cycle을 판별하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 행 n, 열 m, 정답 ans, 시작점 sr,sc, 방문여부를 확인할 ck, 방향 dr,dc, board 를 선언하고 입력받습니다. 📔 풀이과정 2중 for loop를 수행하면서 같은 문자끼리 dfs로 방문해줍니다. 1. 인접칸을 방문하면서 dfs함수를 호출해줍니다. 호출당 길이가 1씩 증가합니다. 2. 최소 사이클의 길..
(C++) - 백준(BOJ) 1174 : 줄어드는 수 https://www.acmicpc.net/problem/1174 1174번: 줄어드는 수 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 수라고 한다. 예를 들어, 321와 950은 줄어드는 수이고, 322와 958은 아니다. N번째로 작은 줄어드는 www.acmicpc.net 전수조사 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 수 n, check를 위한 배열 ck, 수 목록 num, 정답을 출력할 ans, 뽑은 수들을 저장할 comb를 선언한 후 적절히 입력 받습니다. 📔 풀이과정 줄어드는 수의 최대값은 9876543210입니다. 이는 자릿수마다 배열 num에 저장해 둡니다.줄어드는 수를 결정하는 가짓수는 다음처럼 생각해볼 수 있습니다. 각 자리를 선..
(C++) - 백준(BOJ) 1535 : 안녕? https://www.acmicpc.net/problem/1535 1535번: 안녕 첫째 줄에 사람의 수 N(≤ 20)이 들어온다. 둘째 줄에는 각각의 사람에게 인사를 할 때, 잃는 체력이 1번 사람부터 순서대로 들어오고, 셋째 줄에는 각각의 사람에게 인사를 할 때, 얻는 기쁨이 1번 www.acmicpc.net 기본 전수조사 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 사람 수 n, 잃는 체력 l, 얻는 기쁨 j를 일차원 배열로 선언 후 적절히 입력받습니다. 📔 풀이과정 dfs함수를 수행합니다. 현재 depth번째 사람에게 다름 두 가지 상태가 있습니다.1. depth번째 사람에게 인사하기2. depth번째 사람에게 인사하지 않기각자에 대해 모든 경우를 조사한 시간복잡도는 2^20이 되게 됩니다. 📔..
(C++) - 백준(BOJ) 1254 : 팰린드롬 만들기 https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 전수조사 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열 s, 최대 팰린드롬 길이를 저장할 maxPalinLen을 선언한 후 적절히 입력받습니다. 📔 풀이과정 문자열의 중간이 팰린드롬일 때 마자 maxPalinLen에 해당 길이를 저장합니다.이후 문자열의 길이 - maxPalinLen이 추가해야할 단어의 길이가 됩니다. 📔 정답출력 (s.size() - maxPalinLen) * 2 + maxPa..
(C++) - 백준(BOJ) 2251 : 물통 https://www.acmicpc.net/problem/2251 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net bfs문제였습니다. 📕 풀이방법 📔 입력 및 초기화 각 물통의 용량을 저장할 일차원 배열 a, 방문 여부를 저장할 3차원 배열 ck, 정답을 저장할 vector v를 선언 후 입력받습니다. 📔 풀이과정 A, B, C에 담긴 물의 용량을 각각 x,y,z라고 한다면 물을 붓는 상태는 다음과 같이 6가지가 됩니다. 각 상태에는 또 부었을 때 물이 넘치는 경우와 그렇지 않은 경우, 두..