728x90
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
https://github.com/ROUTINE-STUDY/Algorithm
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
문제 출처 : https://www.acmicpc.net/problem/15820
[문제 설명]
간단한 입출력 문제.
[접근 방법]
최악의 경우 모든 문제를 검증해야하므로 시간복잡도는 O(S1+S2).
문제나 테스트케이스를 저장하거나 하지 않으므로 공간복잡도는 O(1).
[처음 작성한 코드]
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val (cntOfSampleTest, cntOfPrivatTest) = readLine().split(" ").map {it.toInt()}
repeat(cntOfSampleTest) {
val (myAnswer, realAnswer) = readLine().split(" ").map { it.toInt() }
if (myAnswer != realAnswer) {
println("Wrong Answer")
return
}
}
repeat(cntOfPrivatTest) {
val (myAnswer, realAnswer) = readLine().split(" ").map { it.toInt() }
if (myAnswer != realAnswer) {
println("Why Wrong!!!")
return
}
}
println("Accepted")
}
[다른 사람 답안 보고 리팩토링]
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val (cntOfSampleTest, cntOfPrivateTest) = readLine().split(" ").map {it.toInt()}
fun checkIsAllCorrect(cntOfCase: Int): Boolean {
repeat(cntOfCase) {
val (myAnswer, realAnswer) = readLine().split(" ").map { it.toInt() }
if (myAnswer != realAnswer) {
return false
}
}
return true
}
val outputMsg = if (!checkIsAllCorrect(cntOfSampleTest))
"Wrong Answer"
else if (!checkIsAllCorrect(cntOfPrivateTest))
"Why Wrong!!!"
else
"Accepted"
println(outputMsg)
}
[Java]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(it -> Integer.parseInt(it)).toArray();
for (int i = 0; i < input[0]; i++) {
int[] answerAndTestCase = Arrays.stream(br.readLine().split(" ")).mapToInt(it -> Integer.parseInt(it)).toArray();
if (answerAndTestCase[0] != answerAndTestCase[1]) {
System.out.println("Wrong Answer");
return;
}
}
for (int i = 0; i < input[1]; i++) {
int[] answerAndTestCase = Arrays.stream(br.readLine().split(" ")).mapToInt(it -> Integer.parseInt(it)).toArray();
if (answerAndTestCase[0] != answerAndTestCase[1]) {
System.out.println("Why Wrong!!!");
return;
}
}
System.out.println("Accepted");
}
}
코틀린 로컬함수 예전에 본 적이 있는데 거의 써본 적이 없다.
이번에 다른 사람 코드를 보고 써봤는데 편하고 좋다
728x90
반응형
'알고리즘 문제 풀이 > 구현' 카테고리의 다른 글
백준 - 빙고(Kotlin) (0) | 2022.03.23 |
---|---|
백준 - 추월(Kotlin) (0) | 2022.02.24 |
백준 - 달팽이 리스트(Kotlin) (0) | 2022.02.20 |
백준 - 물 주기(Kotlin) (0) | 2022.02.06 |
백준 - 기상캐스터 (0) | 2022.01.30 |