전체 글 177

백준 1748 : 수 이어 쓰기 1

문제 링크입니다 https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1≤N≤100,000,000)이 주어진다. www.acmicpc.net 인자로 받은 수의 자릿수를 반환하는 함수를 만들어서 for문을 통해 1부터 N까지 모두 함수에 넣어, 반환되는 값을 누적하여 더해 출력하는 형태로 문제를 해결하였습니다. [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // [Brute Force] 백준(1748) : 수 이어 쓰기 1 #include int n; // 인자로 받은 k가 몇 자릿수인지 반환하는 함수 int getResult(int k) { int ..

백준 1051 : 숫자 정사각형

문제 링크입니다 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N*M크기의 직사각형이 있다. 각 칸은 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다. www.acmicpc.net 입력받은 N*M 크기의 직사각형 배열 전체를 탐색하면서, 정사각형 한 변의 길이를 늘려가며 네 꼭짓점의 값이 같은 정사각형을 찾아 그 정사각형의 크기를 찾는식으로 해결했습니다. 자세한 풀이 방법은 주석을 참고해주세요. [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27..

백준 10448 : 유레카 이론

문제 링크입니다 https://www.acmicpc.net/problem/10448 10448번: 유레카 이론 문제 삼각수 Tn(n ≥ 1)는 [그림]에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다. [그림] 자연수 n에 대해 n ≥ 1의 삼각수Tn는 명백한 공식이 있다. Tn = 1 + 2 + 3 + ... + n = n(n+1)/2 1796년, 가우스는 모든 자연수가 최대 3개의 삼각수의 합으로 표현될 수 있다고 증명하였다. 예를 들어, 4 = T1 + T2 5 = T1 + T1 + T2 6 = T2 + T2 or 6 = T www.acmicpc.net 재귀 호출을 이용해 모든 경우를 탐색하여 문제를 해결했습니다. 문제 해결 절차는 다음과 같습니다. 1. 삼각수에 ..

백준 13460 : 구슬 탈출 2

문제 링크입니다 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 큐를 이용한 BFS를 통해 문제를 해결했습니다. 문제 해결 절차는 다음과 같습니다. 1. 빨간 구슬과 파란 구슬..

백준 3190 : 뱀

문제 링크입니다 https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따 www.acmicpc.net 문제에서 주어진 순서대로 차근차근 구현하였고, map에서 뱀을 8, 사과를 1로 놓고 풀었습니다. 풀이 방법을 순서대로 나열하면..

백준 14888 : 연산자 끼워넣기

문제 링크입니다 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net 입력으로 주어지는 4개의 연산자들을 순서만 바꿔가며 골라, 골라진 연산자들 순서대로 입력으로 주어진 숫자들을 연산한 결과 중 최댓값과 최솟값을 찾는 문제였습니다. 주석 참고해주세요! [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2..

백준 14501 : 퇴사

문제 링크입니다 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 재귀 함수를 이용해 모든 경우를 탐색해보는 문제였습니다. 자세한 설명은 주석을 참고해주세요. [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include const int MAX = 15 + 10; int n, t[MAX], p[MAX], ret; // day부터 시작하여 퇴사 날짜가 되면 ret에 지금까지의 합(sum)의 // 최댓값을 저장해주는 함수 voi..

백준 11403 : 경로 찾기

문제 링크입니다 https://www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 // [DFS] 백준(11403) : 경로 찾기 #include #include #include using namespace std; int..

백준 1260 : DFS와 BFS

문제 링크입니다 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ..