algorithm

algorithm

[백준] 숫자의 합 (C++)

문제 URL: www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 다음 문제는 공백 없이 쓰여진 N개의 숫자를 모두 합해서 출력하는 프로그램을 작성하는 문제로 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어지고, 둘째 줄에 숫자 N개가 공백없이 주어진다. 처음에 풀 때는 숫자 N개를 string 문자열로 입력받은 뒤, 이것을 stoi() 함수를 이용하여 숫자로 바꿔주는 방식을 사용하려했다. 하지만 계속 런타임 에러(out_of_range)가 일어났는데, 인터넷 검색을 통해서 알고 보니 int 형의 max값이 2147483647이라는 ..

algorithm

[백준] 평균은 넘겠지 (C++)

문제 URL: www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 다음 문제는 각 테스트 케이스마다 평균을 넘는 학생 수가 몇 퍼센트인지 계산하는 문제이다. 첫째 줄에 테스트 케이스의 개수 C가 주어진 뒤, 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 처음으로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 이 문제를 처음 풀 땐, 첫 번째로 입력받을 학생수 n까지 배열로 생각하여 풀려고 했으나, 그렇게 하면 동적 배열의 크기가 중간에 바뀌..

algorithm

[백준] 나머지 (C++)

문제 URL: www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 이 문제는 숫자 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구하고, 그 다음 나머지가 서로 다른 값이 몇 개 있는지 출력하는 프로그램이다. 이 문제를 풀기 위해 먼저 배열을 만들어 숫자를 입력받고, 입력받은 숫자를 42로 나눈 나머지 값을 다른 배열에 저장했다. 그 뒤 반복문을 이용하여 배열의 요솟값들을 비교해주었는데, 입력받은 요솟값과 이전에 입력받은 배열의 모든 요솟값이 비교된 뒤, 같은 값이 존재하지 않을 경우에만 서로 다른 값이라고 파악하고 count변..

algorithm

[백준] OX퀴즈 (C++)

문제 URL: www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 다음 문제는 OX퀴즈의 점수를 구하는 프로그래밍으로, O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. 이 문제에서는 "OOXXOXXOOO"와 같이 문자열을 입력받아야하기 때문에 먼저 string 객체로 ..

algorithm

[백준] 평균 (C++)

문제 URL: www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 다음 문제는 기존 점수들 중 최댓값을 M이라고 하고, 모든 점수를 (점수)/M*100으로 고쳐주어 새로운 평균을 구하는 문제이다. 이 문제를 풀기 위해 먼저 동적 배열을 선언하여 점수를 입력받았다. 그 뒤 최댓값을 변수 m에 저장해두고, 배열의 각 요소에 저장된 점수들을 지정된 식에 맞추어 조작한 뒤 다시 배열에 대입해주었다. 결과적으로 필요한 결괏값은 새로운 점수들의 평균이기 때문에 배열의..

algorithm

[백준] 최댓값 (C++)

문제 URL: www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 다음 문제는 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램이다. 이 문제는 다음과 같이 풀었는데, 먼저, 배열을 만들어 9개의 자연수를 입력받고, 배열의 첫 번째 요솟값을 변수에 집어넣은 뒤, 그 변수와 뒤 따라오는 요솟값들을 비교하여 조건에 따라 변수를 갱신해주는 코드를 작성하였다. 또한, 조건문 안에..

algorithm

[백준] 숫자의 개수 (C++)

문제 URL: www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 이 문제는 a, b, c를 곱한 값에서 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램으로 문제를 처음 풀 때는 입력 받은 정수를 string으로 바꾸어 string의 각 요소를 사용하려고 했지만 각 요소를 다시 정수로 바꿀 방법이 없어서 (있기야 하겠지만 복잡할 것 같아서) 각 자릿수를 추출하는 방법으로 다시 생각해봤다. 하지만 각 자릿수를 추출할 때, 가장 높은 자리부터 추출하려고 하니 코드가 너무 어려워졌다. 그래서 다시 stri..

algorithm

[백준] A+B - 5 (C++)

문제 URL: www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 다음 문제는 숫자를 입력받고 입력 받은 수의 합을 구하는 문제로, 입력의 마지막에는 0 두 개가 들어간다. 이 문제에서 먼저 숫자들을 입력받기 위해 동적 배열을 이용하였는데, 여기서 어려웠던 점은 배열의 크기를 모르기 때문에 동적배열의 크기를 변수로 잡는다고 해도 그 변수가 반복문 이전에 정해지지 않아서 문제를 푸는데 고민을 많이 했었다. 따라서 생각해낸 방법은 일단 배열의 크기를 1로 초기화 한 뒤, (0이면 반복문의 조건에 맞지 않기 때문에 1로 초기화 해주었다.) 동적 배열을 선언하고, while문 ..

algorithm

[백준] 별 찍기 - 2 (C++)

문제 URL: www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 다음 문제는 출력 화면에 별('*') n개를 찍는 문제로, 아래와 같이 별 문자 앞에 공백을 두고 출력해야 한다. (n=5일 때 실행 결과) * ** *** **** ***** 이 문제에서 별을 반복하는 부분은 이중 반복문을 이용하여 풀면 어렵지 않게 풀 수 있었다. 하지만 공백을 나타내는 부분에서 약간의 문제가 있었는데, 처음에 이 문제를 보자마자 출력 공간을 확보할 수 있는 setw()함수가 떠올라서, 문제를 풀기 위해 setw()함수..

algorithm

[백준] 곱셈 (C++)

문제 URL: www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 다음 문제는 세 자리 자연수들의 곱셈으로 곱셈 과정을 거치면서 나오는 값들을 모두 출력한다. 이 문제는 생각하기 간단한 문제로, 문제를 풀기 위해서 먼저, 두 번째로 입력 받은 자연수를 각 자리 별로 나누어 변수에 대입해주고, 그 다음으로 나누어진 각 자리 수와 첫 번째로 입력 받은 자연수를 곱해서 결과를 출력해주었다. 위와 같은 과정으로 프로그래밍하면 코드는 아래와 같이 나온다. #include using namespace std; int main() { int num1, num2; cin >> nu..

jeonge
'algorithm' 카테고리의 글 목록 (10 Page)