시리즈: 알고리즘 (32개 글)
- 자바로 알고리즘 풀기
- [Java] 백준 10431 - 줄 세우기
- [Java & Node.js] 백준 9935 - 문자열 폭발
- [Node.js] 백준 22866 - 탑 보기
- [Java] 백준 4485 - 녹색 옷 입은 애가 젤다지?
- [Node.js] 백준 1283 - 단축키 지정
- [Java & Node.js] 백준 14469 - 소가 길을 건너간 이유 3
- [Java] 백준 8979 - 올림픽
- [Node.js] 백준 22866 - 탑 보기
- [Java] 백준 7568 - 덩치
- [Java] 백준 1244 - 스위치 켜고 끄기
- [Node.js] 백준 19941 - 햄버거 분배
- [Node.js] 백준 1254 - 팰린드롬 만들기
- [Java] 백준 2589 - 보물섬
- [Java] 백준 2309 - 일곱 난쟁이
- [Java] 백준 1789 - 수들의 합
- [Java] 백준 1987 - 알파벳
- [Node.js] [Rust] 백준 24460 - 특별상이라도 받고 싶어
- [Node.js] 백준 7576 - 탑 보기
- [Rust] 백준 1047 - 울타리 (N^4 브루트포스 + 그리디)
- [Node.js] 백준 9657 - 돌게임3
- [Rust] 백준 4963 - 섬의 개수
- [Node.js] 프로그래머스 - 모의고사 / 실패율
- [Rust] 백준 2667 - 단지번호붙이기
- [Node.js] 프로그래머스 - 방문 길이
- [Node.js] 프로그래머스 - 괄호 회전하기
- [Rust] 백준 1002 - 터렛
- [Node.js] 프로그래머스 - 크레인 인형뽑기 게임
- [Node.js] 프로그래머스 - 기능개발
- [Rust] 백준 13717 - 포켓몬 GO
- [JavaScript] 백준 1092 - 배
- [Rust] 백준 25329 - 학생별 통화 요금 계산
백준7568 - 덩치
접근
- x,y p,q 가 있다고 할 때
- x,y가 p,q 보다 둘다 커야 한다 (
&&사용) - 해당 인물의 등수는 자신보다 큰 사람
k + 1 - N은 50으로 작음. <-
O(N^2)도 문제가 없다!
- 아 브루트포스!
구현 전
- 굳이 class 를 만들어서 접근할까?
- 2차원 배열 쓸까?
어차피 하나하나 집어넣을 것, class를 써서 익숙해지자는 마인드
StringBuilder에 현재 인물의 등수와, 공백을 통해 출력!
구현
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
People[] people = new People[N];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
people[i] = new People(x,y);
}
br.close();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
People curPeople = people[i];
int biggerCnt = 0;
for(int j = 0; j < N; j++) {
if (j == i) continue;
People targetPeople = people[j];
if (curPeople.x < targetPeople.x && curPeople.y < targetPeople.y) {
biggerCnt++;
}
}
sb.append(biggerCnt + 1);
sb.append(' ');
}
System.out.println(sb);
}
static class People {
int x;
int y;
public People(int x, int y) {
this.x = x;
this.y = y;
}
}
}
결론
- class 만드는 방법에 대해 더 학습할 필요가 있음.
- getter / setter 외 오버라이딩 등 이것저것!
메모리: 14156 KB, 시간: 116 ms
나쁘지 않구료.
근데 vscode로 자바 쓰는건 좀 별로인 것 같다. 흐으으음.