728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120876
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
좌표의 위치를 저장 해둘 배열을 만들고
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
[프로그래머스 LV.0] 겹치는 선분의 길이
겹치는 선분의 길이 문제 설명 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개
codingga-dingga.tistory.com
이분의 코드를 보고 이해하고 참고 했는데 굉장히 읽기 좋은 코드였다.
이분은 200개의 Set<Int>를 이용했지만 속도 차이가 별로 나지 않아 좀 더 직관적인 빈 배열을 사용해보았다.
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스: 해시 - 완주하지 못한 선수 (0) | 2024.11.12 |
---|---|
프로그래머스: 해시 - 포켓몬 (1) | 2024.11.08 |
프로그래머스: 해시 - 베스트앨범 (0) | 2023.11.29 |
프로그래머스: 연습문제 - 최솟값 만들기 (0) | 2023.11.27 |
프로그래머스: 월간 코드 챌린지 시즌3 - n^2 배열 자르기 (0) | 2023.10.13 |
댓글