문제를 계속 옮겨가면서 풀다보니깐 적응을 못하는것같다. 문제를 봤을때 적응할 수 있게 하는게 목표이다.
내가 생각했을때 문제에서 원하는부분
첫 줄에 UCPC 개최 연도 y가 주어집니다. (2018<= y <= 2022)
y년도 UCPC 예선의 출제진이 의도한 가장 쉬운 문제의 번호를 영어 대문자 알파벳 한 글자로 출력하세요.
내가 이 문제를 보고 생각해본 부분
UCPC 2018 예선: A번, 수학은 체육과목 입니다
UCPC 2019 예선: A번, 수학은 체육과목 입니다 2
UCPC 2020 예선: A번, 수학은 비대면강의입니다
UCPC 2021 예선: A번, 수학은 체육과목 입니다 3
문제에 보면 이부분이 있는데 2018년 ~ 2021년 해당하면 각각 A를 출력해줬다.
코드로 구현
package baekjoon.baekjoon_18;
import java.util.Scanner;
// 백준 25311번 문제
public class Main629 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
if(year == 2018) {
System.out.println("A");
}
else if(year == 2019) {
System.out.println("A");
}
else if(year == 2020) {
System.out.println("A");
}
else if(year == 2021) {
System.out.println("A");
}
else {
System.out.println("A");
}
sc.close();
}
}
시간복잡도 O(1)
장점
입력 데이터 크기와 무관하게 항상 일정한 시간이 소요된다. 입력이 커져도 실행 속도가 변하지 않으므로 안정적이다.
실행 속도가 매우 빠르다. 크기가 큰 입력데이터에서도 순식간에 결과를 계산할 수 있다.
단점
입력 데이터를 모두 검사하지 않고 결과를 출력하므로, 정확도가 떨어질 수 있다.
복잡한 문제나 많은 경우의 수를 다루기 어렵다. 문제 자체가 단순해야 O(1)으로 해결할 수 있다.
입력 데이터에 따라 메모리 사용량이 달라질 수 있다.
아무래도 최근에 프로그래머스에서 백준으로 옮겨가면서 계속 문제를 풀다보니깐 문제에서 설명이 너무 많이나와서 적응이하기가 조금 힘들었다. 아직 문제를 푸는게 익숙하지 않아서 그런것같다.