#1 알고리즘
코드 중에 선택 정렬의 원리를 살짝 응용한 부분이 있다. 선택 정렬은 알고리즘이 매우 간단하기 때문에, 가벼운 정렬 문제에 사용하기에 안성맞춤이다.
#2 코드
#2-1 자바
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
exam4153(sc);
sc.close();
}
private static void exam4153(Scanner sc) {
String[] linesStr = sc.nextLine().trim().split(" ");
int[] lines = new int[3];
for(int i = 0; i < 3; i++) {
lines[i] = Integer.parseInt(linesStr[i]);
}
if(lines[0] == 0) {
return;
} else {
// 선택 정렬 알고리즘의 원리를 살짝 응용
int longest = 0;
for(int i = 1; i < 3; i++) {
if(lines[longest] < lines[i]) {
longest = i;
}
}
// lines[longest]의 값을 배열의 맨 뒤와 교환
int temp = lines[2];
lines[2] = lines[longest];
lines[longest] = temp;
if(lines[0] * lines[0] + lines[1] * lines[1] == lines[2] * lines[2]) {
System.out.println("right");
} else {
System.out.println("wrong");
}
exam4153(sc);
}
}
}
코틀린에서와는 달리, main()가 아니라 exam4153()를 재귀 호출한다. 처음 선언한 Scanner 객체를 유일하게 유지하기 위함이다.
#2-2 코틀린
fun main() {
val linesStr = readln()!!.trim().split(" ")
val lines : Array<Int> = Array(3) { 0 }
for(i : Int in 0..2) {
lines[i] = linesStr[i].toInt()
}
if(lines[0] == 0) {
return
} else {
// 선택 정렬 알고리즘의 원리를 살짝 응용
var longest = 0
for(i : Int in 1..2) {
if(lines[longest] < lines[i]) {
longest = i
}
}
// lines[longest]의 값을 배열의 맨 뒤와 교환
val temp = lines[2]
lines[2] = lines[longest]
lines[longest] = temp
if(lines[0] * lines[0] + lines[1] * lines[1] == lines[2] * lines[2]) {
println("right")
} else {
println("wrong")
}
main()
}
}
'문제 풀이 > 기타' 카테고리의 다른 글
[백준] 2839 (설탕 배달) (0) | 2023.12.04 |
---|---|
[백준] 9076 (점수 집계) (0) | 2023.12.02 |
[백준] 8958 (OX퀴즈) (0) | 2023.11.27 |
[백준] 10818 (최소, 최대) (0) | 2023.11.24 |
[백준] 10250 (ACM 호텔) (0) | 2023.11.23 |