링크 : 문제 바로가기
원래는 파이썬을 공부하며 여러 온라인 저지 사이트의 알고리즘 문제들을 풀었었는데, 최근 자바를 공부하며 알고리즘 문제들을 멀리 하였다. 하지만 지금은 어느정도 자바에 대한 감도 생긴 것 같아 알고리즘 문제를 자바를 기반으로 풀어보려고 한다. 아직 자바에 대한 이해가 완벽하지는 않기 때문에 알고리즘의 난이도보다는 단순한 알고리즘 문제를 자바를 이용해 푸는 과정을 통해 자바 숙련도를 높이는 목적이다.
1) 사용자로부터 입력값을 받기 위해 java.util패키지에 포함된 Scanner클래스를 이용한다.
import java.util.Scanner;
2) Scanner객체를 만들고 system.in으로 바이트 단위로 값을 읽는다.
Scanner 객체명 = new Scanner(System.in);
3) Scanner는 다양한 메서드를 제공한다.
자바를 공부할 때 System.out.println()을 사용해서 다른 출력 명령어가 있는 것은 몰랐는데 다른 명령어도 있음을 알았다.
printf를 이용해 출력 후 다음줄로 넘어가기 위해서는 \n 을 사용해주어야 하고, 여기서 지시자란 파이썬에서 포매팅의 개념과 비슷하다.
ex)
int a=100;
String b="경기도";
System.out.printf("a는 %d, b는 %s이다.%n",a,b);
풀이
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
int m;
int m2;
int booknum;
int booknum2;
int result=0;
n = sc.nextInt();
m = sc.nextInt();
for (int cnt = 0; cnt < m; cnt++) {
m2 = sc.nextInt();
booknum = sc.nextInt();
for (int cnt2 = 0; cnt2 < m2-1; cnt2++) {
booknum2 = sc.nextInt();
if (booknum2>booknum) {
result+=1;
}else {
booknum=booknum2;
}
}
}
// System.out.println(books);
// System.out.println(result);
if (result>0) {
System.out.println("No");
}else {
System.out.println("Yes");
}
}
}
알고리즘 : 구현,애드혹,스택