본문 바로가기

전체 글72

깊이우선탐색과 너비우선탐색 문제 그래프가 주어질 때, 0번 정점을 시작으로 하여 깊이우선탐색과 너비우선탐색의 결과를 출력하는 프로그램을 작성하시오. 단, 노드를 방문할 때는 노드 번호가 작은 순서대로 방문한다고 하자. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ M ≤ 100,000 ) 둘째 줄부터 간선의 정보가 주어진다. 각 줄은 두 개의 숫자 a, b로 이루어져 있으며, 이는 정점 a와 정점 b가 연결되어 있다는 의미이다. 정점의 번호는 0번부터 N-1번까지이다. 출력 첫 번째 줄에 깊이우선탐색 결과, 두 번째 줄에 너비우선탐색 결과를 출력한다. 예제 입력 9 12 0 1 0 2 0 3 1 5 2 5 3 4 4 5 5 6 5 7 5 8 6 7 7 8 예제 출력 0 1 5 2.. 2022. 8. 17.
[C++] String to int, int to String String to int string을 int로 형변환할 때는 stoi 함수를 사용한다. stoi는 string to integer를 축약시킨 단어이며 double로 형변환 시 stod, long long으로 형변환 시 stoll을 사용하면 된다. 그리고 숫자로 형변환 시에는 해당 자료형의 범위를 넘어가지 않도록 유의한다. int to String int를 String으로 형변한할 때는 to_string 함수를 사용한다. 위에서 언급한 함수들은 string헤더에 포함되어 있으므로 코드 작성시 추가해주도록 한다. 예시 코드 #include #include using namespace std; int main() { string str_1 = "123"; int num_1 = 456; int num_2 = .. 2022. 8. 6.
숫자 피라미드 문제 N과 시작 숫자 S가 주어지면 숫자 피라미드를 만드는 프로그램을 작성하시오. 예를 들어, N이 5이고 S가 3 이라면, 그 숫자 피라미드는 다음과 같다. 3 456 21987 3456789 987654321 시작 숫자 S는 꼭대기부터 1씩 증가한다. 시작 행의 번호가 1번이라고 했을때, 짝수번째 행은 왼쪽에서 오른쪽으로 1씩 증가하도록 적고, 홀수번째 행은 거꾸로 적는다. 숫자가 만약 10이 될 경우, 1로 바꾸고 다시 증가한다. 입력 입력의 첫 번째 줄에 N과 시작 숫자 S가 주어진다. (1 s; for(int i=1; i 2022. 7. 21.
card game 문제 두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, 한 번 제 시한 카드는 버린다. 게임 승패는 다음과 같이 결정된다. 각 라운드는 더 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다. 열 번의 라운드에서 더 많은 라운드를 승리한 사람이 게임을 승리하고, 승리한 라운드 횟수 가 동일한 경우 비긴다. 다음은 게임의 한 예로, 각 라운드마다 A와 B가 제시한 카드의 숫자와 각 라운드의 승자를 보여준다. (비긴 라운드는 D로 표시함) A는 5번의 라운드에서 승리하고 B는 4번의 라운 드에서 승리하였으므로, 이 게임은 A가 승리한다. 라운드.. 2022. 7. 21.
주사위 게임 문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3 * 100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2 * 1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이 6이므로 6 *.. 2022. 7. 21.
소수 판별 2 문제 자연수 n,m이 주어질 때, n부터 m까지 존재하는 소수를 모두 출력하는 프로그램을 작성하여라. 여기서 소수란, 약수가 1과 자기 자신밖에 존재하지 않는 수를 말한다. 입력 첫째 줄에 자연수 n,m이 주어진다. (1 n >> m; for(int i=n; i 2022. 7. 20.
삼각형 출력 3 문제 n층의 삼각형을 출력하는 프로그램을 작성하여라. 입력 첫째 줄에 정수 n이 주어진다. (0 n; for(int i=1; i0; k--) cout 2022. 7. 20.
삼각형 출력 1 문제 n층의 삼각형을 출력하는 프로그램을 작성하여라. 입력 첫재 줄에 정수 n이 주어진다. (0 n; for(int i=1; i 2022. 7. 20.
제곱근 구하기 문제 N이 주어질 때, 제곱하여 N보다 크거나 같은 숫자들 중 최솟값을 출력하는 프로그램을 작성하시오. 예를 들어, N = 10 이라고 하자. 그러면 s=3 일 경우 3 x 3 = 9 이므로 10보다 크거나 같지 않다. s=4일 경우, 4 x 4 = 16 이므로 10보다 크거나 같다. s=5일 경우, 5 x 5 = 25 이므로 10보다 크거나 같다. 즉, s = 4, 5, 6, ..., 의 숫자들은 모두 제곱하면 10보다 크거나 같다. 이 중 최솟값은 4이므로, 4를 출력한다. 입력 첫 번째 줄에 N이 주어진다. (1 n; while(1){ if(cnt*cnt >= n){ cout 2022. 7. 17.