일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가운데 글자 가져오기 자바
- m1 docker install
- 빅분기실기
- codeup 1020 자바
- 최단 경로 알고리즘
- 코드업 1020 자바
- 프로그래머스 가운데 글자 가져오기 파이썬
- docker 완전 삭제
- docker 삭제
- 프로그래머스 가운데 글자 가져오기 자바
- 코드업 1020 java
- 트리의 지름 자바
- 최소 스패닝 트리 자바
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- 나누어 떨어지는 숫자 배열 python
- 청년 AI Big Data 아카데미 13기
- 가운데 글자 가져오기 파이썬
- 핸즈온 머신러닝
- m1 docker
- 가운데 글자 가져오기 python
- docker remove
- codeup 1020 java
- 트리의 지름 java
- 빅데이터분석기사
- 청년 Ai Big Data 아카데미
- 최소 스패닝 트리
- 가운데 글자 가져오기 java
- 프로그래머스 가운데 글자 가져오기 python
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- 나누어 떨어지는 숫자 배열 java
- Today
- Total
NineTwo meet you
[백준/자바/파이썬] 2599 짝 정하기 본문
문제
어떤 시골의 중학교에는 부근의 3개 초등학교를 졸업한 남녀 학생들이 입학한다.
1학년 1반을 맡게 된 김갑동 선생님은 자기 반에 배정된 학생들을 대상으로 하여 짝을 정하려고 한다.
1학년 1반에 배정 된 학생들은 남자와 여자가 각각 N 명씩이다. 김갑동 선생님은 서로 모르는 학생끼리 짝이 되도록 하기 위해 같은 초등학교 출신이 아닌 남학생과 여학생을 짝으로 정하기로 원칙을 세웠다.
예를 들어, 다음 표와 같이 1학년 1반에 학생들이 왔다고 하자.
위의 경우에는 다음과 같이 짝을 하면 서로 다른 초등학교 출신의 남녀 학생들로 짝을 정할 수 있다.
A초등 남학생 3명과 B초등 여학생 3명
A초등 남학생 1명과 C초등 여학생 1명
B초등 남학생 1명과 A초등 여학생 1명
C초등 남학생 1명과 A초등 여학생 1명
김갑동 선생님의 문제를 해결하는 프로그램을 작성하시오.
입력첫 줄에는 남학생 (또는, 여학생) 수를 나타내는 정수 N (3≤N≤100,000)이 주어진다.
둘째 줄에는 A초등학교 출신의 남학생 수와 여학생 수가 주어진다.
셋째 줄에는 B초등학교 출신의 남학생 수와 여학생 수가 주어진다.
넷째 줄에는 C초등학교 출신의 남 학생 수와 여학생 수가 주어진다. 모든 학생수는 0 이상이다.
출력김갑동 선생님의 원칙대로 모든 학생들의 짝을 정할 수 있으면 첫 줄에 1을 출력하고, 그렇지 않으면 0을 출력한다.
첫 줄에 1을 출력한 경우는,
둘째 줄에 A초등 남학생과 B초등 여학생의 짝 수와 A초등 남학생과 C초등 여학생의 짝 수를,
셋째 줄에 B초등 남학생과 A초등 여학생의 짝 수와 B초등 남학생과 C초등 여학생의 짝 수를,
넷째 줄에 C초등 남학생과 A초등 여학생의 짝 수와 C초등 남학생과 B초등 여학생의 짝 수를 출력한다.
숫자와 숫자 사이에는 빈칸을 하나 둔다.
짝 정하는 방법이 여럿인 경우에는 아무거나 한 방법을 출력한다.
풀이
계산 순서
파란색 - 현재 구하는 값
노란색 - 파란색을 구하기 위해 필요한 값으로 바로 이전에 구한 값을 의미한다.
1. A남자와 B여자가 짝이 되는 수를 i로 0부터 A남자의 수만큼 반복문을 시행한다.
2. A남자와 C여자가 짝이 되는 수 = A남자의 수 - A남자와 B여자와 짝이 되는 수(= i)
3. B남자와 C여자가 짝이 되는 수 + A남자와 C여자가 짝이 되는 수 = C여자의 총 수
즉, B남자와 C여자가 짝이 되는 수 = C여자의 총 수 - A남자와 C여자가 짝이 되는 수
4. B남자와 A여자가 짝이 되는 수 + B남자와 C여자가 짝이 되는 수 = B남자의 총 수
즉, B남자와 A여자가 짝이 되는 수 = B남자의 총 수 - B남자와 C여자가 짝이 되는 수
5. C남자와 A여자가 짝이 되는 수 + B남자와 A여자가 짝이 되는 수 = A여자의 총 수
즉, C남자와 A여자가 짝이 되는 수 = A여자의 총 수 - B남자와 A여자가 짝이 되는 수
6. C남자와 B여자가 짝이 되는 수 + C남자와 A여자가 짝이 되는 수 = C남자의 총 수
즉, C남자와 B여자가 짝이 되는 수 = C남자의 총 수 - C남자와 A여자가 짝이 되는 수
코드 python / java
'프로그래밍 문제 > 백준' 카테고리의 다른 글
[백준/자바] 20055 컨베이어 벨트 위의 로봇 (0) | 2020.11.10 |
---|---|
[백준/자바] 19238 스타트 택시 (0) | 2020.11.10 |
[백준] 10818 최소, 최대 (0) | 2020.06.28 |
[백준] 10996 별 찍기 - 21 (0) | 2020.06.26 |
[백준] 10995 별 찍기 - 20 (0) | 2020.06.26 |