리스트 안에 찾는 수가 있으면 몇 번째에 있는지 출력

없다면 -1 출력하는 문제였다.

try / except 문을 활용하여 풀었다.

n, target = map(int, input().split())
L = list(map(int, input().split()))

try:
    print(L.index(target)+1)
except:
    print(-1)

'<코딩테스트> > [기타 문제-초급]' 카테고리의 다른 글

3-1 분리수거장  (0) 2024.09.26

중앙값에 도달하는지 확인하고 원래 받은 데이터에서 찾아서 출력

n = int(input())  
apart = [] 
check = []

for i in range(n):
    x, y = map(int, input().split())
    apart.append((x, y))      
    check.append(y)

apart.sort()

peple = sum(a[1] for a in apart)
count = 0  


for i in range(n):
    count += apart[i][1] 
    if count >= peple / 2:  
        print(check.index(apart[i][1]) + 1)  
        break

 

 

코드해설

n = int(input())  # 아파트 단지 수 입력
apart = []   # 아파트 위치와 거주 인구를 저장할 리스트
check = []

# 아파트 위치와 거주 인구 입력 받기
for i in range(n):
    x, y = map(int, input().split())  # x: 아파트 위치, y: 아파트에 거주하는 사람 수
    apart.append((x, y))         # (위치, 거주 인구) 쌍으로 리스트에 추가
    check.append(y)
# 아파트 위치를 기준으로 정렬 (번호가 작은 아파트를 먼저 고려해야 하므로 위치를 기준으로 정렬)
apart.sort()
print(apart)
# 전체 인구의 절반을 넘는 순간을 찾기 위한 준비
peple = sum(a[1] for a in apart)  # 전체 거주 인구의 합
count = 0  # 누적 인구

# 아파트 단지를 순차적으로 보면서 중앙값에 해당하는 단지 찾기
for i in range(n):
    count += apart[i][1]  # 현재 아파트까지의 누적 인구 수 계산
    if count >= peple / 2:  # 누적 인구가 절반을 넘으면 해당 아파트가 중앙값
        print(check.index(apart[i][1]) + 1)  # 아파트 단지는 1번부터 시작하므로 i+1을 출력
        break

'<코딩테스트> > [기타 문제-초급]' 카테고리의 다른 글

3-3 특정 원소 찾기  (0) 2024.09.26

+ Recent posts