티스토리 뷰
반응형

20949번: 효정과 새 모니터
효정은 새해를 맞이하여 새 모니터를 구매하고자 한다. 효정은 돈이 많기 때문에 77인치 모니터를 구매할 것이다. 모니터를 구경하던 효정은 놀라 자빠질 수밖에 없었다. 모니터가 너무 많아 고
www.acmicpc.net
난이도 : 실버 5
정렬하는 문제입니다.
PPI가 높은 순서 -> 같다면 번호가 작은 순서로 정렬하면 됩니다.
모든 모니터의 크기가 같으므로 나누고 루트 씌울 필요 없이 w^2 + h^2로 계산했습니다.
함수
main
단순히 입력 받고 정렬 후 출력했습니다.
정렬은 람다로 작성해봤습니다.
class Monitor
번호와 계산된 값을 변수로 가집니다.
생성자에서 calculator를 호출해 계산된 값을 넣어줍니다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.BufferedReader; | |
import java.io.InputStreamReader; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.StringTokenizer; | |
public class p20949 { | |
public static void main(String[] args) throws Exception { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
List<Monitor> monitors = new ArrayList<>(); | |
int count = Integer.parseInt(br.readLine()); | |
for(int i = 1; i <= count; i++) { | |
StringTokenizer stz = new StringTokenizer(br.readLine()); | |
int width = Integer.parseInt(stz.nextToken()); | |
int height = Integer.parseInt(stz.nextToken()); | |
monitors.add(new Monitor(i, width, height)); | |
} | |
monitors.sort((monitor1, monitor2) -> | |
monitor1.calculatedValue == monitor2.calculatedValue ? | |
monitor1.number - monitor2.number : monitor2.calculatedValue - monitor1.calculatedValue); | |
StringBuilder answer = new StringBuilder(); | |
for(Monitor monitor : monitors) { | |
answer.append(monitor.number).append("\n"); | |
} | |
System.out.println(answer.toString()); | |
} | |
static class Monitor { | |
int number, calculatedValue; | |
Monitor(int _number, int width, int height) { | |
number = _number; | |
calculatedValue = calculate(width, height); | |
} | |
private int calculate(int width, int height) { | |
return (int) (Math.pow(width, 2) + Math.pow(height, 2)); | |
} | |
} | |
} |
반응형
'문제풀이 > 백준 && 프로그래머스' 카테고리의 다른 글
[프로그래머스] 프렌즈4블록 (자바) (0) | 2021.02.11 |
---|---|
[백준 5052] 전화번호 목록 (자바) (0) | 2021.01.09 |
[백준 14725] 개미굴 (자바) (0) | 2021.01.07 |
[백준 1937] 욕심쟁이 판다 (자바) (0) | 2021.01.04 |
[백준 3860] 할로윈 묘지 (자바) (0) | 2020.12.01 |
댓글