Softeer - 연탄의 크기 (Python)

조민수·2024년 2월 2일

Softeer

목록 보기
5/20

Lv2, ⭐⭐


문제 풀이

  • 처음에 틀린 코드
from sys import stdin

n = int(stdin.readline())
arr = list(map(int, stdin.readline().split()))
arr.sort()
# 어차피 n <= 100

res = -1

for i in range(n):
    tmp = arr[i]
    cnt = 1
    for j in range(i + 1, n):
        if arr[j] % tmp == 0:
            cnt += 1
    res = max(res, cnt)

print(res)

가장 작은 원소 기준으로 했는데

3
6 9 12

의 입력 예시에서

2

가 나왔다. 반지름의 길이를 3으로 잡으면 3이 답이 되어서 fail


  • 정답 코드
from sys import stdin

n = int(stdin.readline())
arr = list(map(int, stdin.readline().split()))
arr.sort()
# 어차피 n <= 100

res = 0

for i in range(2, max(arr) + 1):
    cnt = 0
    for j in range(n):
        if arr[j] % i == 0:
            cnt += 1
    res = max(res, cnt)

print(res)

주어진 가장 큰 수까지 수들에 대해
수가 해당 값으로 나눠지면 cnt += 1 하는 방식으로 해결했다.

이걸 해결 못해서 20분동안 헤맨게 화난다.

profile
Being a Modern Project Manager

0개의 댓글