[백준/프루트포스] 2309: 일곱 난쟁이 - 파이썬

2022. 4. 14. 10:03· Problem Solving/CT-Python
목차
  1. 문제
  2. 내가 제출한 답
  3. 다른 사람의 답
  4. 맨 처음 시도했던 답

문제

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

 

2309번: 일곱 난쟁이

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

www.acmicpc.net

 

내가 제출한 답

a = [int(input()) for _ in range(9)]
sumList = sum(a)

for i in range(8):
    for j in range(i+1, 9):
        if sumList - (a[i] + a[j]) == 100:
            one = a[i]
            two = a[j]
            a.remove(one)
            a.remove(two)
            a.sort()
            for b in a:
                print(b)
        if len(a)<=8:
            break
    if len(a)<=8:
        break

리스트에서 값이 제거되면 루프를 바로 빠져나오게 하였다.

왜냐하면 값을 이미 구했다면 나머지 루프에서 값을 만족하는지 계산할 이유가 없어서이다. 

 

다른 사람의 답

a = [int(input()) for _ in range(9)]
sumList = sum(a)

for i in range(8):
    for j in range(i+1, 9):
        if sumList - (a[i] + a[j]) == 100:
            one = a[i]
            two = a[j]
            a.remove(one)
            a.remove(two)
            a.sort()
            for b in a:
                print(b)
        if len(a)<=8:
            break
    if len(a)<=8:
        break

 

맨 처음 시도했던 답

a = [int(input()) for _ in range(9)]
sumList = sum(a)

for i in range(8):
    for j in range(i+1, 9):
        if sumList - (a[i] + a[j]) == 100:
            a.remove(a[i])
            a.remove(a[j])
            a.sort()
            for b in a:
                print(b)
        if len(a)<=8:
            break
    if len(a)<=8:
        break

위 코드로 테스트 했었는데 자꾸 오답이 나와서 알고리즘상으로는 문제가 없는데 어디에서 잘못된 연산을 하고있는건지

한참 찾아보았다.

결국에는 a[i], a[j]가 문제였다. 

a.remove(a[i]) 구문을 수행하고 다음 구문을 실행할 때 a[j]가 인덱스 한칸씩 없어졌기 때문에 오답이 제출 된 것.

제거하고 싶은 값을 인덱스로 할당해서 제거하는 것이 아닌 변수에 임시로 할당해서 제거하는 방식으로 제출함.

 

'Problem Solving > CT-Python' 카테고리의 다른 글

[백준/브루트포스] 2635: 수 이어가기 - 파이썬  (0) 2022.04.22
[백준/구현] 2669: 직사각형 네개의 합집합의 면적 구하기 - 파이썬  (0) 2022.04.22
[백준/프루트포스] 7568: 덩치 - 파이썬  (0) 2022.03.25
[백준/그리디] 1715: 카드 정렬하기 - 파이썬  (0) 2022.03.16
[백준/브루트포스] 4673: 셀프넘버 - 파이썬  (0) 2022.03.16
  1. 문제
  2. 내가 제출한 답
  3. 다른 사람의 답
  4. 맨 처음 시도했던 답
'Problem Solving/CT-Python' 카테고리의 다른 글
  • [백준/브루트포스] 2635: 수 이어가기 - 파이썬
  • [백준/구현] 2669: 직사각형 네개의 합집합의 면적 구하기 - 파이썬
  • [백준/프루트포스] 7568: 덩치 - 파이썬
  • [백준/그리디] 1715: 카드 정렬하기 - 파이썬
White Han
White Han
Software Developer
White Han
sudo apt-get happiness
White Han
전체
오늘
어제
  • 분류 전체보기 (183)
    • Language (35)
      • Java (17)
      • Java-Weekly-study (0)
      • Python (18)
    • BackEnd (11)
      • Server (2)
      • Spring (3)
      • Spring Security (0)
      • JDBC (1)
      • NodeJS (2)
      • LINUX (3)
    • DataBase (10)
      • MySQL (5)
      • MongoDB (4)
      • Oracle (1)
    • Infra (4)
      • Docker (4)
    • CS (38)
      • OS (38)
    • Problem Solving (79)
      • Algorithm (8)
      • CT-Java (30)
      • CT-Python (41)
    • IDE (1)
      • eclipse (1)
      • vscode (0)
    • Etc. (3)
      • Git (1)
      • TDD, Refactor, CleanCode (1)
      • Conference (1)
    • 기록 (2)
      • 후기 (1)
      • 프로젝트 회고록 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

  • 방문해 주셔서 감사합니다.

인기 글

태그

  • 사무용 모니터 추천
  • OS
  • java
  • 운영체제 구조
  • 자바 this
  • javascript identifier
  • 싸피
  • 프로세서
  • 알파스캔 모니터
  • javascript
  • 싸피8기
  • 자바스크립트 식별자
  • Java super
  • 자바 super
  • 사무용 모니터
  • 운영체제 역할
  • 싸피 후기
  • 자바스크립트 개념
  • 운영체제
  • Java this
  • Java Inheritance
  • 자바스크립스 식별자 종류
  • 자바 inheritance
  • 싸피 합격
  • 24인치 모니터 추천
  • 프로세스
  • SSAFY
  • 자바스크립트
  • AOC 24B1X
  • 알파스캔 AOC 24B1X

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
White Han
[백준/프루트포스] 2309: 일곱 난쟁이 - 파이썬
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.