728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120876
풀이
좌표의 위치를 저장 해둘 배열을 만들고
3개의 좌표 위치를 모두 저장한다.
이렇게 저장하고 나면 해당 좌표에 저장되는 좌표가 2개 이상 되는 경우를 카운팅
func solution(_ lines:[[Int]]) -> Int {
// 원소의 start와 end의 범위가 -100 ~ 100 사이 이므로 200개의 count
var table = Array(repeating: [], count: 200)
for i in 0..<lines.count{
for j in lines[i][0] ..< lines[i][1] {
// 좌표의 위치를 찍어준다(넣어둔다)
table[j+100].append(i)
}
}
// 좌표는 2개 이상 겹쳐져야 하므로 같은 좌표가 찍혀서 []의 개수가 2개 이상 되는 곳들만 찾아서 반환
return table.filter{$0.count > 1}.count
}
출처: https://codingga-dingga.tistory.com/121
이분의 코드를 보고 이해하고 참고 했는데 굉장히 읽기 좋은 코드였다.
이분은 200개의 Set<Int>를 이용했지만 속도 차이가 별로 나지 않아 좀 더 직관적인 빈 배열을 사용해보았다.
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스: 해시 - 베스트앨범 (0) | 2023.11.29 |
---|---|
프로그래머스: 연습문제 - 최솟값 만들기 (0) | 2023.11.27 |
프로그래머스: 월간 코드 챌린지 시즌3 - n^2 배열 자르기 (0) | 2023.10.13 |
프로그래머스: 완전탐색 - 카펫 (0) | 2023.10.07 |
프로그래머스: 월간 코드 챌린지 시즌1 - 이진 변환 반복하기 (1) | 2023.10.06 |
댓글