본문 바로가기
728x90

정올7

[백준] 20186. 수 고르기 (2020 정올 2차 초등부 1번)<C++> www.acmicpc.net/problem/20186 20186번: 수 고르기 첫 번째 줄에 주어진 N개의 수 중 K개의 수를 고를 때, 전체점수의 최댓값을 출력한다. www.acmicpc.net 나의 풀이: 가장 큰 수를 k개만큼 고르기만 하면 되는 문제이다. 가장 큰 수를 고르기 위해 정렬을 해준 후 뒤의 수 k개를 vector에 담아준다. 입력 받은 배열을 훑어보며 vector에 있는 수라면 더해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #include #include #include using namespace std; .. 2020. 11. 17.
[백준] 19941. 햄버거 분배 (2020 정올 중등 1번) <C++> www.acmicpc.net/problem/19941 19941번: 햄버거 분배 기다린 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사�� www.acmicpc.net 나의 풀이 0 ~ N-1 까지 가면서 사람이 나온다면 사람을 기준으로 k번만큼 왼쪽 ~ k번만큼 오른쪽까지 보면서 햄버거가 있다면 먹는다. 12345678910111213141516171819202122232425#include #include using namespace std; int main() { string arr; int n, k, cnt=0, sw; cin >> n >> k; cin >> ar.. 2020. 9. 23.
[백준] 19939. 박 터뜨리기 (2020 정올 초등부 1번) <C++> www.acmicpc.net/problem/19939 19939번: 박 터뜨리기 $N$개의 공을 $K$개의 바구니에 문제의 규칙을 만족하면서 나눠 담을 수 있다면, 가장 많이 담긴 바구니와 가장 적게 담긴 바구니의 공의 개수 차이를 출력한다. 나눠 담을 수 없는 경우에는 -1을 � www.acmicpc.net 규칙을 찾는 문제였다. 규칙만 찾는다면 구현은 금방 하는 문제이지만 규칙 찾기가 쉽지 않았다. 우선 공을 가장 적게 분배해준다. 1) k = 3이라면 1 2 3 > n >> k; for (i = 1; i 2020. 9. 22.
2511 백준 (카드놀이) <C++> acmicpc.net/problem/2511 2511번: 카드놀이 첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 � www.acmicpc.net Olympiad > 한국정보올림피아드 > KOI 2012 > 초등부 1번 배열 하나와 변수 하나만 이용해서 풀어보았다. 배열 0~9번 방에는 각 라운드의 점수를 담고, 10번 방에는 각 라운드의 승점의 누적합을 담았다. 그리고 무승부일 경우를 위해 0번 방부터 누적합을 구하며 가장 뒷부분의 라운드 결과를 sw변수에 담아주었다. //입력 부분 for (int i = 0; i > ar.. 2020. 7. 30.
[백준] 17615. 볼 모으기 <C++> https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주�� www.acmicpc.net 음.. 무언가 규칙이 있을 것 같기는 한데 떠오르지는 않았다... 그래서 정말 단순하게 알고리즘을 생각했다. 파란색들을 왼쪽으로 다 모을 때, 오른쪽으로 모을 때 빨간색들을 왼쪽으로 다 모을 때, 오른쪽으로 모을 때 (코드에서 정말로 배열의 각 방을 스왑하거나 하지는 않는다. 개수를 셀 뿐이다.) 이렇게 네 가지의 경우를 모두 구해 최소값을 구하도록 만들었다. RB.. 2020. 6. 20.
[백준] 10798. 세로읽기 <C++> www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net #include using namespace std; char a[5][16]; //1) int main(){ for(int i=0; i>a[i]; for(int k=0; k 2020. 4. 16.
[백준] 1244. 스위치 켜고 끄기 <C++> www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net #include using namespace std; int main() { int n, arr[101], std, g, y, i, k; cin>>n; //스위치의 개수 입력 받기 for(i=1; i>arr[i]; //스위치의 상태 입력 받기 } cin>>std; //학생 수 입력 받기 for(k=0; k>g>>y; //학생의 성별, 번호 입력 if(g==1) //남학생일 때 { for(i=1; in ||.. 2020. 4. 13.
728x90