- 오늘의 학습 키워드 해시
- 공부한 내용 본인의 언어로 정리하기
시간 복잡도 : O(n)
해시맵의 모든값을 확인하는데 최악의 경우 O(n)
x좌표가 같은 점이 몇개인지 세기
y 좌표가 같은점이 몇개인지 세기
2개 이상의 점이 있는 좌표값만 고려하여 직선의 수 계산
x축에 평행한 직선은 같은 y 좌표를 가진 점을 지난다.
y축에 평행한 직선은 같은 x 좌표를 가진 점을 지난다.
수도코드
함수 평행선 개수 세기(points[][]):
x좌표 맵= 빈 해시맵; x 좌표-> 해당 x 좌표를 가진 점의 개수
y좌표 맵= 빈 해시맵; y 좌표-> 해당 y 좌표를 가진 점의 개수
for(각점 in points)
x좌표맵[x]++;
y좌표맵[y]++;
직선 개수 =0;
for 각 좌표 x in 좌표맵:
if x 좌표맵[x] >=2: //같은 x 좌표를 가진 점이 2개 이상이면
직선 개수 ++;
for 각 좌표값 y in y좌표맵:
if y 좌표맵[y>=2] //같은 y 좌표를 가진 점이 2개 이상이면
직선개수 ++
return 직선개수
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
for 문으로 x 좌표 점의 개수를 가져오는데
자료형이 다른 문제가 발생했다.
public static int countParallelLines(int[][] points){
//x좌표와 y좌표로 점의 개수를 세기 위한 해시맵
Map<Integer,Integer> xcords = new HashMap<>();//x좌표-> x좌표를 가진 점의 개수
Map<Integer,Integer> ycords= new HashMap<>();//y좌표->y 좌표를 가진 점의 개수
for(int[] point: points){
int x = point[0];
int y= point[1];
points 는 int[] 가 자료형이고 point 는 int 값을 가져오는 목적이었는데 까먹고 int x= points[0]; 을 해서 자료형 컴파일 에러났다.
- 어떻게 해결했는지
ide 에서 나오는 에러 표시 보고 자료형 다른것 찾았다.
- 무엇을 새롭게 알았는지
points 배열
2차원 배열
points[0][0] 첫번째점의 x 좌표
points[0][1] 첫번째점의 y 좌표
point[i][0] = sc.nextInt(); "i 번째 점의 x 좌표 값을 입력 받아 저장한다."
- 내일 학습할 것은 무엇인지
'【스터디노트】 > ▷TIL' 카테고리의 다른 글
99클럽 코테 스터디 12일차 TIL + 오늘의 학습 키워드 해시 (0) | 2025.04.15 |
---|---|
99클럽 코테 스터디 11일차 TIL + 오늘의 학습 키워드 해시 (0) | 2025.04.14 |
99클럽 코테 스터디 9일차 TIL + 오늘의 학습 키워드 문자열 해시 (0) | 2025.04.10 |
99클럽 코테 스터디 8일차 TIL + 오늘의 학습 키워드 문자열/해시 (0) | 2025.04.09 |
99클럽 코테 스터디 7일차 TIL + 오늘의 학습 키워드 스택 (1) | 2025.04.08 |