# 10171번, 고양이
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
개념 : \를 기능없는 문자로 쓰기 위해서는 앞에 \를 한개 더 붙여줘야한다.
# 2753번, 윤년을 판별하는 문제
윤년윤년의 조건은 4의 배수이면서 100의 배수는 아니거나 400의 배수인 년이다.
윤년일 경우, 1을 아니면 0을 출력하는 코드.
# 14681번 , 사분면 고르기
1. 사용자의 입력을 받기위해서는
a. import java.util.Scanner;
b. Scanner 객체 = new Scanner(System.in);
c. 객체 선언 = 스캐너객체.nextInt/nextLine()/next();
>>프로그램이 동작하면 사용자가 수를 입력하는 시점은 c이다.
2. 사분면에서 입력된 숫자에 맞는 결과를 출력하기 위해서는
a. 여러 경우가 있으므로 if문 이용해야함.
b. 기본 조건을 충족한 후 사분면을 고를수 있기 때문에 if문 안에 if문 형식으로 적어야함.
이렇게 해도 프로그램은 동작되지만 백준알고리즘에선 런타임에러로 뜬다. 한참을 고쳐봤는데도 안되서 결국 서칭을 해보니 훨씬 간단한 코드가 있었다..
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner num = new Scanner(System.in);
int x = num.nextInt();
int y = num.nextInt();
if (x>0) {
if (y>0)
System.out.println(1);
else if (y<0)
System.out.println(4);
}
else if (x<0) {
if (y>0)
System.out.println(2);
else if (y<0)
System.out.println(3);
}
}
}
문제에 나와있는 x,y의 기본조건까지 if문으로 쓸필요가 없었다.. 그리고 if-else문을 잘 활용하면 더 간단한 if-else문으로 쓸수 있다. 마지막으로 스캐너의 객체는 하나만 생성해줘도 된다.
많은 걸 알고가게 된 문제였다.
# 2884번, 알람 시계
import java.util.Scanner;
public class alarm {
public static void main(String[] args) {
Scanner num = new Scanner(System.in);
int H = num.nextInt(); //시
int M = num.nextInt(); //분
if (M<45) { //분이 45분보다 작으면 60-(45-M)이므로 15+M을 M에 넣어주고,H에도 변화가 생김.
M =15+M;
if (H==0) //0시이면 23시로.
H=23;
else //그 외의 시이면 1시간을 빼주면된다.
H-=1;
}
else //분이 45분보다 크면, 분에서 45분을 빼주면 끝.
M-=45;
System.out.println(H+" "+M); //출력
}
}
처음에 문제를 봤을 떄는 어렵게 느껴졌지만 경우의 수를 생각해보고 따로 정리를 해준 후에 코드를 적으려고 하니 훨씬 쉽게 느껴졌다!
# 2439번, 별 찍기-2
사실 더 어려운 문제도 풀어봤음에도 누구나 한번씩 해본 별 찍기 문제를 제대로 풀어본 적이 없었는데 이 문제를 풀면서 정확히 알고 가게 되었다!
num=5라고 가정하면,
1. 입력한 수만큼 반복하는 for문과 띄어쓰기하는 for문과 별을 줄에 맞춰 찍는 for문, 총 세 반복문이 필요하다.
a. 한 줄 씩 내려가는 for문안에
b. 1씩 줄어드는 띄어쓰기 for문 + 1씩 커지는 별찍는 for문이 들어가야한다.
2. 한 줄에 출력되는 띄어쓰기수+별갯수= 5와 같아야한다.
a. 1씩 줄어드는 for문은 for(int j=num-i-1;j>0;j--)
*주의*
j=num-i로 해주게되면 띄어쓰기가 한칸이 더 찍히게 된다.
b. 1씩 커지는 for문은 for(int k=0;k<=i;k++)
k<=num 으로 해주게되면 별이 모든 줄에 5개씩 찍히게된다.
# 10871번, X보다 작은 수
1. 수열 개수 N과 기준이 될 숫자 X를 입력받고
2. 반복문을 돌리면서 N개만큼 입력해주고 바로 X보다 작은 수는 화면에 출력하도록 한다.
3. " "로 구분이 되도록 뒤에 붙여주고 출력한다.
'Algorithm & Data Structure > 문제 풀이' 카테고리의 다른 글
[10817번] 세 수 (0) | 2020.08.29 |
---|---|
[10039번]평균 점수 (Java) (0) | 2020.08.27 |
[5543번] 상근날드 (0) | 2020.08.27 |
[1110번] 더하기 사이클 (0) | 2020.08.25 |
[10951번] EOF 개념 (0) | 2020.08.25 |