풀이
- 문제를 해결하면서 좀 비효율적인데 이게 맞는것 같아서 그냥 적용해서 해결
- 우선 입력 값이 많이 있기에 import sys로 input 을 재정의 하고
- 이후 현재 카약의 위치를 찾아서 해당 카약 번호에 맞는 li의 인덱스에 넣어주기
- 이후 결과인 result 배열에 2중 for문으로
- 비교 대상 카약인 i와 비교할 대상 카약인 j를 비교하는데
- i와 j 즉 같은 카약이 아니며 비교할 대상 카약이 더 목표 지점에 가깝고
- 같은 거리 위치의 카약과 비교한 적이 없는 경우에만
- 카운팅과 s에 넣어 연산하여 해결
import sys
input = sys.stdin.readline
r,c = map(int,input().split())
li = [0]*(9)
for _ in range(r):
kayak = input().strip('\n')
for i in range(1,len(kayak)-1):
if kayak[i] != ".":
li[int(kayak[i])-1] = i
break
result = [0]*(9)
for i in range(9):
cnt = 1
s = set()
for j in range(9):
if i != j and li[i] < li[j] and li[j] not in s:
cnt += 1
s.add(li[j])
result[i] = cnt
[print(i) for i in result]
'알고리즘' 카테고리의 다른 글
[백준, 자바, 10989번] 수 정렬하기 3 - 도수 정렬(Counting Sort) (0) | 2024.08.03 |
---|---|
[프로그래머스] 코딩 기초 트레이닝 (각 문제 별 답) -1 (2) | 2024.06.18 |
[백준, 파이썬, 2485번] 가로수 (0) | 2024.05.27 |
[백준, 파이썬, 1543번] 문서 검색 (0) | 2024.05.03 |
[백준, 파이썬, 5585번] 거스름돈 (0) | 2024.05.03 |