알고리즘

[C/C++]백준 번 - 문제 링크 : https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 접근방식 일반적인 BFS문제. 백준 4179문제와 푸는 방식이 동일하다. 코드 #include using namespace std; #define X first #define Y second string board[1002]; int dist1[1002][1002]; //불 int dist2[1002][1002]; //상근 int dx[4] = {-1,0,1,0}; in..
문제 링크 : https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 접근방식 2가지 풀이를 생각해 볼 수 있다. 1번째) 그냥 단순하게 배열을 처음부터 순회하면서 정수v의 개수를 확인하는 방법. 2번째) 배열의 저장공간을 좀 더 써서 입력받은 정수들을 배열의 대응되는 인덱스의 값을 1씩 증가시키는 방식. 2번째 방법에는 좀 변형이 필요하다. v의 구간때문이다. (-100
문제 링크 : https://www.acmicpc.net/problem/2490 2490번: 윷놀이 우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 www.acmicpc.net 접근방식 0과 1의 개수를 저장할 배열을 선언해서 배열의 0의 개수를 확인 후 결과를 출력. 코드 #include int arr[2]; int main() { int number; for (int k = 0; k < 3; k++) { arr[0] = 0; arr[1] = 0; for (int i = 0; i < 4; i++) { scanf("%d", &number); arr[..
문제 링크 : https://www.acmicpc.net/problem/2752 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net 접근방식 입력이 3개 밖에 없어서 간단하게 버블 정렬을 이용. 코드 #include using namespace std; int arr[3]; void bubbleSort() { int tmp; for (int i = 0; i arr[j]) { tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } } int main()..
문제 링크 : https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 문제 색종이 수를 세는 문제. 자세한 내용은 위의 링크를 참고. 접근방식 쿼드 트리 문제와 똑같은 문제다. base case에서 1인 경우 파란색 색종이 변수의 수를 1 증가시키고, 0인 경우에는 하얀색 색종이 변수의 수를 1증가 시키면 된다. 단, 입력에 공백이 있어서 char이 아닌 int형 배열을 이용했다. 코드 #include int paper[12..
문제 링크 : https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 문제 정보문화진흥원 정보 영재 동아리에서 동아리 활동을 하던 영수와 민혁이는 쉬는 시간을 틈타 숫자야구 게임을 하기로 했다. 영수는 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수를 마음속으로 생각한다. (예: 324) 민혁이는 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수를 영수에게 묻는다. (예: 123) 민혁이가 말한 세 자리 수에 있는 숫자들 중 하..
문제 링크 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 ..
문제 링크 : https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 접근방식 각 숫자들 간의 관계를 발견하면 쉽게 풀 수 있는 문제. N번째 = (N-1) + (N-2) + (N-3) 코드 #include int dp[10] = { 0,1,2,4 }; int main() { int T,n; scanf("%d", &T); for (int i = 4; i
ya_ya
'알고리즘' 태그의 글 목록