PS (Program Solving)(340)
-
[백준 BOJ] 2675번 문자열 반복 (C언어)
문제 설명 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 접근 방법 - 문자열과 반복문을 이용한 연산 문제 백준 2675번 문제는 문자열과 반복문을 적절하게 사용하여 해결해야 하는 문제이다. 해당 문제는, 주어진 문자열의 각 문자들을 주어진 숫자만큼 반복하여 출력하면 되는 간단한 문제이긴 하다. 다만 필자의 경우에선 문자 배열을 전역 변수로 선언하였다가 많이 헤매었던 기억이 있다. 전역 변수로 선언한 채 그대로 사용하면 이전 테스트 ..
2022.01.27 -
[백준 BOJ] 2609번 최대공약수와 최소공배수 (C언어)
문제 설명 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 접근 방법 - 수학적 사고력을 요구하는 문제 백준 2609번 문제는 최소공배수와 최대공약수의 배경지식에서 수학적 사고력을 요구하는 문제이다. 위 2가지의 개념을 이전 글에서도 다룬 적이 있으니 아래의 링크를 참고해보길 바란다. https://smary-it.tistory.com/18 [백준 BOJ] 1934번 최소공배수 (C언어) 문제 설명 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대..
2022.01.26 -
[백준 BOJ] 2606번 바이러스 (Java)
문제 설명 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 접근 방법 - 큐를 이용한 너비 우선 탐색 (BFS) 백준의 2606번 문제는 깊이 우선 탐색(DFS) 또는 너비 우선 탐색(BFS)으로 해결해야 하는 문제이다. 필자의 경우에는 큐를 이용하여 BFS 알고리즘을 사용하였는데 DFS 알고리즘을 이용해도 무관할 것이다. 해당 문제에선, 주어진 컴퓨터 네트워크에 대하여 1번 컴퓨터가 감염되었다고 가정하였을 시 몇 대의 컴퓨터가 감염되었을지에 대한 ..
2022.01.26 -
[백준 BOJ] 2588번 곱셈 (C언어)
문제 설명 https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 접근 방법 - 자릿수 추출 연산이 필요한 수학 문제 백준 2588번 문제는 자릿수 추출을 필요로 하는 곱셈 연산 문제이다. 해당 문제는 세 자릿수를 가진 2개의 수의 곱셈이 이루어지는 과정을 순차적으로 출력하는 문제이다. 위 문제에 나와있는 예시에 따르면, 472*5, 472*8, 472*3을 각각 계산하고, 제일 끝에는 최종적인 곱셈 결과를 출력하면 된다. 필자는 아래의 순서대로 코드를 작성하였고 문제를 해결하였다. 코드의 실행 순서 1) 2개의 수(a, b)를 입력받는다. 2) n1, n..
2022.01.26 -
[백준 BOJ] 2577번 숫자의 개수 (C언어)
문제 설명 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 접근 방법 - 수학적 사고력을 요구하는 문제 백준 2577번 문제는 수학적 사고력을 필요로 하는 문제이다. 해당 문제에선, 3개의 수를 곱한 수에 대해 0에서 9까지의 숫자 빈도수를 구해야 한다. 따라서 필자는 각 숫자의 빈도수를 저장하기 위해 배열을 사용하였다. 필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다. 배열을 이용한 원리는 아래의 코드와 코드 설명을 참고하길 바란다. 코드의 실행 순서 1) 3개의 수(a, b, c) 입력..
2022.01.24 -
[백준 BOJ] 2562번 최댓값 (C언어)
문제 설명 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 접근 방법 - 배열을 이용한 기본 문제 백준 2562번 문제는 배열을 이용하여 최댓값을 구하는 문제인 것으로 추측된다. 해당 문제에선 최댓값뿐만 아니라 해당 값이 존재하는 위치까지 묻고 있기 때문이다. 따라서 필자는, 최댓값과 해당 값이 위치하는 배열 번호를 수시로 갱신하면서 해답을 구하였다. 필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다. 코..
2022.01.24