본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Silver 4][Python] 6159번 : 코스튬 파티

by 빛밤하늘 2021. 5. 13.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

6159번: 코스튬 파티

한 농부가 할로윈 파티에 그의 소들을 데려가려고한다. 아쉽게도 농부에게는 코스튬이 한벌밖에 없다. 그 코스튬에는 정확하게 사이즈는 S(1 <= S <= 1,000,000)이며, 최대 소 두마리가 들어간다. 농

www.acmicpc.net

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# readline을 사용하기 위해 import합니다.
from sys import stdin

# 소의 수 N, 코스튬의 크기 S를 공백으로 구분해 입력합니다.
# 정수형으로 변환해서 저장합니다.
# 2 <= N <= 20,000
# 1 <= S <= 1,000,000
N, S = map(int, stdin.readline().split(' '))

# 소들의 크기를 저장하는 리스트 변수를 선언합니다.
cattle_sizes = []

# 코스튬에 들어갈 수 있는 서로 다른 소의 사이즈 짝의 개수를 저장하는 변수를 선언합니다.
pair_cnt = 0

# 소의 수 N만큼 반복해봅니다.
for cow_index in range(N):
    # 소 한 마리의 사이즈를 입력합니다.
    # 1보다 크거나 같고, 1,000,000보다 작거나 같습니다.
    cow_size = int(stdin.readline())
    # 입력한 소 한 마리의 사이즈를 cattle_sizes에 넣어줍니다.
    cattle_sizes.append(cow_size)

# 서로 다른 소들을 하나씩 뽑아봅니다.
for cow1 in range(N - 1):
    for cow2 in range(cow1 + 1, N):
        # 서로 다른 소들의 사이즈의 합이 코스튬의 크기보다 작거나 같다면
        if cattle_sizes[cow1] + cattle_sizes[cow2] <= S:
            # pair_cnt에 1을 더해줍니다.
            pair_cnt += 1

# pair_cnt를 출력해줍니다.
print(pair_cnt)

결과

 

중첩된 for문으로 코드를 짜서 제출해보기도 하고,

combinations를 사용해서 코드를 짜서 제출해봤는데 시간 초과메모리 초과가 떴습니다.

 

그래서 예전에 어떤 블로그에서 읽어봤던 글 중에 Python3로 제출하는 것보다 PyPy3로 제출할 때

더 빠른 실행 시간의 결과를 낼 수 있다는 내용이 있었습니다.

 

이번에 이중 for문으로 작성한 코드를 PyPy3로 제출해봤더니 다행히 맞았습니다 결과가 나왔습니다.

 

다음에 Python3와 PyPy3로 제출할 때 어떤 점이 다른지 조사해서 포스팅해봐야겠습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글