본문 바로가기
공부/코딩테스트

백준: 8437번 Julka (Python3)

by 혼밥맨 2022. 7. 23.
반응형

백준: 8437번 Julka (Python3)

시간 제한메모리 제한제출정답맞힌 사람정답 비율

1 초 128 MB 7133 2468 2328 38.189%

문제요약

무슨 문제가 폴란드어로 돼있어서 이해를 할 수 없었다. 구글 번역기로 다행히 영어로 번역해서 문제를 이해했다.문제는 클라우디아랑 나탈리아가 사과를 먹는데, 총 사과의 수는 10개이고, 클라우디아가 나탈리아보다 사과 2개를 더 갖고 있다면 클라우디아와 나탈리아가 갖고 있는 각각 사과의 수는 몇개인지 출력하라는 것이다.

 

 

입력으로 두 숫자가 주어진다. 첫 번째 입력은 총 사과의 숫자, 그리고 두 번째 입력은 클라우디아가 사과 몇 개를 더 갖고 있는지. 즉, 사과가 10개이고, 클라우디아가 사과 2개를 더 갖고 있으면10 이렇게 입력을 준다.출력으로는 클라우디아가 가진 사과 개수랑 나탈리가 가진 사과 개수를 출력하면 된다.

 

문제

Julka zaskoczyła wczoraj w przedszkolu swoją wychowawczynię rozwiązując następującą zagadkę:

Klaudia i Natalia mają razem 10 jabłek, ale Klaudia ma o 2 jabłka więcej niż Natalia. Ile jabłek ma każda z dziewczynek?

Julka odpowiedziała bez namysłu: Klaudia ma sześć jabłek, natomiast Natalia ma cztery jabłka.

Wychowywaczyni postanowiła sprawdzić, czy odpowiedź Julki nie była przypadkowa i powtarzała zagadkę, za każdym razem zwiększając liczby jabłek w zadaniu. Julka zawsze odpowiadała prawidłowo. Zaskoczona wychowawczyni chciała kontynuować ,,badanie'' Julki, ale przy bardzo dużych liczbach sama nie potrafiła szybko rozwiązać zagadki. Pomóż pani przedszkolance i napisz program, który będzie podpowiadał jej rozwiązania.

Napisz program, który:

  • wczyta (ze standardowego wejścia) liczbę jabłek, które mają razem obie dziewczynki oraz o ile więcej jabłek ma Klaudia,
  • obliczy, ile jabłek ma Klaudia i ile jabłek ma Natalia,
  • wypisze wynik (na standardowe wyjście).

입력

Wejście składa się z dwóch wierszy. Pierwszy wiersz zawiera liczbę wszystkich jabłek posiadanych przez dziewczynki, natomiast drugi - liczbę mówiącą, o ile więcej jabłek ma Klaudia. Obie liczby są całkowite i dodatnie. Wiadomo, że dziewczynki mają razem nie więcej niż 10100 (jedynka i sto zer) jabłek. Jak widać, jabłka mogą być bardzo malutkie.

출력

Twój program powinien wypisać (na standardowe wyjście) w dwóch kolejnych wierszach dwie liczby całkowite, po jednej w wierszu. Pierwszy wiersz powinien zawierać liczbę jabłek Klaudii, natomiast drugi - liczbę jabłek Natalii. Wiadomo, że dziewczynki zawsze mają całe jabłka.

예제 입력 1 

10
2

예제 출력 1

6
4

시도

1
2
3
4
5
6
7
8
9
total = int(input())
has_more = int(input())
 
reversed_list = list(range(total, -1-1))
mediocre_list = list(range(0, total+1))
 
for Klaudia, Natalia in zip(reversed_list, mediocre_list):
    if(Klaudia-Natalia==has_more):
        print(Klaudia, Natalia)
cs

입력과 출력을 설명대로 잘 작동하도록 코드를 짰다. 그리고 실제로 테스트 했을 때에도 결과가 잘 나왔다. 

그런데 자꾸 채점중 99% 이러다가 OverflowError를 뱉어낸다...

진짜 뭐가 잘못됐는지 알 수는 없었지만 (아시는 분 계시면 댓글 부탁드립니다), 아마 입력이 10의 100승까지 있는데, 리스트 두 개에 for loop으로 돌리니 overflow가 발생한 것 같다. 아마 나의 예측이 맞을거다. 그래서 결국엔 구글에서 검색해서 답안지를 보고 말았다. 

1
2
3
4
= int(input())
= int(input())
print((x+y)//2)
print((x-y)//2)
cs

답은 이렇게 간단하더라. 이래서 코딩하는 사람이 수학을 잘 해야 된다는 것을 깨달았다... for loop을 돌리지 않고 간단한 식 두 개로 해결할 수 있는데, 진짜 뭐랄까 허무했다. ㅋ..그리고 너무 멍청한 것 같다.

반응형

댓글