[문제]
겹치는 선분의 길이를 구하는 문제였다.
입출력 예는 아래와 같다.
정답률 60% 문제였다.
lines | result |
[[0,1],[2,5],[3.9]] | 2 |
[[-1,1],[1,3],[3,9]] | 0 |
[[0,5],[3,9],[1,10]] | 8 |
[풀이 방법]
1. a,b값이 -100이상 100이하이기 때문에, 냅다 [0]으로 구성된 리스트 lst를 만들어줬다.
2. 그 다음에 각각의 선분에 대해서 for문을 적용해서 돌려줬다.
3. for문 안에 for문을 또 넣어서 a(line[0])와 b(line[1]) 사이의 모든 값에 해당하는 lst의 인덱스에 +1을 하도록 했다.
4. 겹치는 부분의 길이를 구하기 위해서, lst 중 값이 2 이상인 부분의 개수를 세어주었다.
5. 세어준 개수가 답!
[코드]
def solution(lines):
answer = 0
lst = [0] * 201
for line in lines:
for i in range(line[0], line[1]):
lst[i+100] += 1
for i in lst:
if i >= 2:
answer += 1
return answer
[교훈]
직관적으로 한스텝 한스텝씩 코드를 치자. 그래야 테스트케이스를 다 통과하기가 수월하다.
'기본기 다지기 > 코테 오답노트' 카테고리의 다른 글
[프로그래머스] 햄버거 만들기 (파이썬) (0) | 2025.03.03 |
---|---|
[프로그래머스] 대충 만든 자판 (파이썬) (0) | 2025.02.27 |
[프로그래머스] 숫자 짝꿍 (파이썬) (0) | 2025.02.26 |
[프로그래머스] 평행 (파이썬) (0) | 2025.02.24 |
[프로그래머스] 다항식 더하기 (파이썬) (0) | 2025.02.20 |