C++ - 백준 [BAEK JOON]/1차원 배열
[백준] 4344번 : 평균은 넘겠지 - [C++]
[백준] 4344번 : 평균은 넘겠지 - [C++]
2021.12.17https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 문제 이 번 문제도 그리 어려운 문제는 아닐 것이다. 다만, 소수점 출력과 반올림 문제 때문에 틀린 분 들도 은근 있을 것이고, 이 번 문제는 입력받은 수에 따라 배열을 생성해야하기에 동적 할당 개념을 모를 경우 어려웠을 수도 있으리라 본다. 이 부분을 유의하면서 한 번 같이 풀어보도록 하자. 알고리즘 [접근 방법] 사실 이 문제자체가 어려운 것은 아니다. 다만, 짚고 넘어가야 할 것이 있다. 바로 배열의 동적 할당과 정적 할당이다. 그동안은 배열을 선언하고 쓸 때 다음과 ..
[백준] 8958번 : OX퀴즈 - [C++]
[백준] 8958번 : OX퀴즈 - [C++]
2021.12.09https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 문제 이 번 문제도 그리 어렵지는 않을 것이다. 필자가 보기엔 입력받은 문자열을 어떻게 다루느냐를 이해하고자 하는 의도가 아닐까 싶다. 알고리즘 [접근 방법] 문제를 이해하는 것은 그리 어렵지 않을 것이다. 우리는 두 가지 규칙만 따르면 된다. 각 케이스마다 점수를 출력한다. O 의 연속 개수 만큼 점수를 누적하여 합산하고 X가 나오면 누적값은 0으로 초기화 된다. 즉, X혹은..
[백준] 1546번 : 평균 - [C++]
[백준] 1546번 : 평균 - [C++]
2021.10.20https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 문제 이 번에는 평균을 구하는 문제다. 다만, 약간 특수한 성적 조작 평균을 구하는... 알고리즘 [접근 방법] 문제 자체는 그리 어렵지 않을 것이다. 약간의 특수한 수식이 필요한데, 일단 요구되는 조건은 주어지는 값들 중 가장 큰 값을 찾는 것. (이를 M이라고 함) 그리고 조작 된 성적을 구하는 수식은 다음과 같다. 조작 된 성적 = ( 단일 과목 / M ) * 100 그러면 평균은 다음..
[백준] 3052번 : 나머지 - [C++]
[백준] 3052번 : 나머지 - [C++]
2021.10.06https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 문제 알고리즘 [접근 방법] 직전 문제인 숫자의 개수 문제를 푼다면 그리 어렵지 않게 풀 수 있는 문제다. 사실 문제 자체는 숫자의 개수와 거의 다르지 않고, 다만 나머지를 구해줄 뿐이니.. 그리 어렵지 않게 풀 수 있을 것이다. 혹시 해당 문제를 풀고오지 않았다면 아래 링크를 통해 먼저 풀어 보고 오시는 것을 추천한다. https://st-lab.tistory.com/271 [백준] 2577번 : 숫자의 개수 - [C++] https://www.acmicpc.net..
[백준] 2562번 : 최댓값 - [C++]
[백준] 2562번 : 최댓값 - [C++]
2021.08.17https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 문제 그리 어려운 문제는 아니다. 아마 많은 분들은 쉽게 풀었을 것 같다. 알고리즘 [접근 방법] 이 문제 자체는 어렵지 않다. 총 9개의 서로 다른 자연수가 주어지면, 주어진 수에서 최댓값과 그 최댓값이 몇 번째로 주어졌는지를 출력하면 되는 문제다. 다만, 유의해야 할 점이라면 배열을 정렬을 시켜버리면 안된다. 우리가 출력해야 하는 건, 최댓값과 최댓값이 몇 번째..
[백준] 10818번 : 최소, 최대 - [C++]
[백준] 10818번 : 최소, 최대 - [C++]
2021.07.23https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 1차원 배열 카테고리의 첫 문제다. 그리 어려운 것은 아닌지라 쉽게 푸실 수 있을 것이다. 알고리즘 [접근 방법] 배열에 대해 이미 알고있다면 이 문제는 그렇게 어렵지는 않은 문제다. 사실 최소, 최대를 찾는다면 배열을 쓸 필요가 없기도 하다. 하지만, 배열의 첫 카테고리인만큼 배열로 먼저 접근해서 풀어보고, 그 다음 마지막으로 배열을 쓰지 않고 푸는 방식..
[백준] 10871번 : X보다 작은 수 - [C++]
[백준] 10871번 : X보다 작은 수 - [C++]
2021.06.03https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 그리 어렵지 않은 문제다. 알고리즘 [접근 방법] 반복문 카테고리의 마지막 문제다. 이쯤오면 아마 대부분 반복문 사용 방법은 익히셨을 것이다. 그래서 이 문제는 크게 설명할 것이 없다. N개의 수를 입력을 받은 뒤, 해당 수들 중에서 X보다 작은 수들을 출력해주면 되는 문제다. 크게 풀이방법은 2 가지가 있는데, 먼저 배열을 사용하여 풀이하는 방법과 입력과 동시에 if 조건절..