반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C++]백준 2309번: 일곱 난쟁이
Baekjoon

[C++]백준 2309번: 일곱 난쟁이

2024. 2. 5. 20:49
반응형

https://www.acmicpc.net/problem/2309

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

 

풀이 : 문제를 딱 보고 경우의 수가 생각났다.

조합으로 생각하면 9개의 data에서 7개의 요소를 선택하는 경우니 최악의 경우 9C2를 만족한다고 생각했다.

7개의 합으로 판단하는 것 보다 전체의 합에서 100을 만족시키게끔 배열의 요소를 빼는 풀이를 생각했다.

다만, break문을 잘못 써서 오답이 발생하였다.. break 문은 가장 가까운 loop를 탈출한다!! (정말 바보같다.)

질문 게시판에 나와 같이 break문을 잘못 기술하여 오답을 낸 분들이 존재했다.

5 10 15 20 25 12 13 11 14 입력이 주어졌다면 쉽게 풀 수 있었을텐데 없어서 한 번쯤은 오답을 낼만한 문제이다.

 

내 정답코드

#include <bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int arr[9], sum = 0;
	for (int i = 0; i < 9; i++) {
		cin >> arr[i];
		sum += arr[i];
		}
	sort(arr, arr + 9);

	for (int i = 0; i < 8; i++) {
		for (int j = i + 1; j < 9; j++) {
			if (sum - arr[i] - arr[j] == 100)
			{
				for (int k = 0; k < 9; k++) {
					if (k != i && k != j)
						cout << arr[k] << '\n';
				}
				return 0;}}}}

 

반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C++]백준 10804번: 카드 역배치  (1) 2024.02.08
[C++]백준 10093번: 숫자  (0) 2024.02.06
[C] 백준 10829번 : 이진수 변환  (0) 2023.08.10
[C] 백준 2750번 : 수 정렬하기  (1) 2023.02.02
[C] 백준 2563번 : 색종이  (0) 2023.02.01
    'Baekjoon' 카테고리의 다른 글
    • [C++]백준 10804번: 카드 역배치
    • [C++]백준 10093번: 숫자
    • [C] 백준 10829번 : 이진수 변환
    • [C] 백준 2750번 : 수 정렬하기
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바