coding test - python/백준
백준 / 1268번 임시 반장 정하기 / Python 파이썬
sillon
2025. 4. 2. 23:22
728x90
반응형
*문제 출처는 백준에 있습니다.
문제 제목: 1268번 임시 반장 정하기
문제 사이트:https://www.acmicpc.net/problem/1268
다른 학년에 서로 같은 반을 해도
점수는 한번만 들어감
따라서 각 학년별로 1번학생과 2번학생 (예시)가 1학년때부터 5학년 때까지 같은 반을 해도
1번 학생의 아는 사람은 2번학생 한명뿐임 (score)
나의 풀이
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
maps = []
for i in range(n):
maps.append(list(map(int,input().split())))
# 각 학생이 전체 학생 중에서 같은 반이였던 학생 수가 많은지 확인
student = [0]*n
for i in range(n):
for j in range(n):
if i == j:
continue
for k in range(5):
if maps[i][k] == maps[j][k]:
student[i]+= 1
break
print(student.index(max(student)) + 1)
최적화할 수 있을 것 같아서 for 문에서 범위만 바꿔줬다.
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
maps = []
for i in range(n):
maps.append(list(map(int,input().split())))
# 각 학생이 전체 학생 중에서 같은 반이였던 학생 수가 많은지 확인
student = [0]*n
for i in range(n):
for j in range(i+1,n):
if i == j:
continue
for k in range(5):
if maps[i][k] == maps[j][k]:
student[i]+= 1
student[j] += 1
break
print(student.index(max(student)) + 1)
ㅈ
두번째 풀이는 3중 ㅍfor문이라도
728x90
반응형