728x90

 

문제 : 25083번: 새싹 (acmicpc.net)

 

25083번: 새싹

아래 예제와 같이 새싹을 출력하시오.

www.acmicpc.net

 

이스케이프 코드를 쓰는게 핵심인 문제

명령어로 읽히는 기호들을 문자열 자체도 찍힐 수 있게 \를 사용하여

문자열이 출력될 수 있게 해준다

// 포인트 : 이스케이프 코드
// 해당 문자를 문자열로 출력 해주는 코드 : \
System.out.println("         ,r'\"7");
System.out.println("r`-_   ,'  ,/");
System.out.println(" \\. \". L_r'");
System.out.println("   `~\\/");
System.out.println("      |");
System.out.println("      |");
728x90
반응형
728x90

 

문제 : 9498번: 시험 성적 (acmicpc.net)

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

풀이

스캐너 혹은 버퍼드리더로 숫자를 받는다
(버퍼드는 str만 받으므로 int로 형변환해야함. 또한 import문 넣을 때도 IOException도 같이 넣어줘야 컴파일 에러 안남)
각 점수대 별로 if문으로 점수 분배

 

정답


import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int score = Integer.parseInt(br.readLine());


        if(score >= 90){
            System.out.println("A");
        }else if(score >= 80){
            System.out.println("B");
        }else if(score >= 70){
            System.out.println("C");
        }else if(score >= 60){
            System.out.println("D");
        }else{
            System.out.println("F");
        }
    }
}

 

728x90
반응형
728x90

문제 : 10172번: 개 (acmicpc.net)

 

10172번: 개

문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...

www.acmicpc.net

 

 

 

이스케이프 코드를 쓰는게 핵심인 문제

명령어로 읽히는 기호들을 문자열 자체도 찍힐 수 있게 \를 사용하여

문자열이 출력될 수 있게 해준다

 

// 포인트 : 이스케이프 코드
// 해당 문자를 문자열로 출력 해주는 코드 : \
System.out.println("|\\_/|");
System.out.println("|q p|   /}");
System.out.println("( 0 )\"\"\"\\");
System.out.println("|\"^\"`    |");
System.out.println("||_/=\\\\__|");

 

 

728x90
반응형
728x90

 

문제 : 10171번: 고양이 (acmicpc.net)

 

10171번: 고양이

아래 예제와 같이 고양이를 출력하시오.

www.acmicpc.net

 

 

이스케이프 코드를 쓰는게 핵심인 문제

명령어로 읽히는 기호들을 문자열 자체도 찍힐 수 있게 \를 사용하여

문자열이 출력될 수 있게 해준다

 

// 포인트 : 이스케이프 코드
// 해당 문자를 문자열로 출력 해주는 코드 : \
System.out.println("\\    /\\");
System.out.println(" )  ( ')");
System.out.println("(  /  )");
System.out.println(" \\(__)|");
728x90
반응형
728x90

 

문제 : 2588번: 곱셈 (acmicpc.net)

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

 

 

 

세 숫자를 chatAt()으로 하나씩 받아서 곱할 수 있게하는 방법

주어진 두 숫자 중 첫번째 숫자와 두번째 숫자의 일의 자리와 곱하게하고

그 다음 십의 자리 그 다음 백의 자리와 곱하게 하여 각각 곱하게 되는 방식

 

chatAt() 뒤에  -'0'이 붙은 이유

char 데이터타입은 자동으로 아스키코드 전환되기 때문에 이를 방지하기 위해 -'0'을 해준 것

 

 

정답

import java.util.*;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int aa = sc.nextInt();
        String bb = sc.next(); //

        // -'0'을 해주는건 아스키코드 자동변환을 방지하기 위함
        System.out.println(aa * (bb.charAt(2)-'0'));        // 일의 자리수와 472 곱
        System.out.println(aa * (bb.charAt(1)-'0'));        // 십의 자리수와 472 곱
        System.out.println(aa * (bb.charAt(0)-'0'));        // 백의 자리수와 472 곱
        System.out.println(aa * (Integer.parseInt(bb)));    // 전체 계산
    }
}

 

728x90
반응형
728x90

 

값을 하나씩 받아서

그냥 println()에 식을 넣어주었다. 별다른 어려운게 없이

println에 출력 쪽 데이터를 보고 적으면 된다

 

정답

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        System.out.println((a+b)%c);
        System.out.println(((a%c)+(b%c))%c);
        System.out.println((a*b)%c);
        System.out.println(((a%c)*(b%c))%c);

    }
728x90
반응형
728x90

 

문제 : 10430번: 나머지 (acmicpc.net)

 

10430번: 나머지

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

www.acmicpc.net

 

 

 

a,b,c 각 변수에 스캐너로 값을 받고

문제대로 println에 식만 넣으면 되는 간단한 문제!

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        System.out.println((a+b)%c);
        System.out.println(((a%c)+(b%c))%c);
        System.out.println((a*b)%c);
        System.out.println(((a%c)*(b%c))%c);
        
    }
}
728x90
반응형
728x90

 

brain storming
472
385 에서 먼저 일의 자리부터 5x2를 해야하므로 472를 인덱스번호로 지정하고
         인덱스2번을 하면 2와 5를 찍어올 수 있으므로 a[2]*b[2] 이런식이면 가능할 듯?
         두 수를 곱해서 10이 넘어가는건 두번째 자리수에 +1,+2 이런식으로 해 볼 수 있을 듯함
         -> 인덱스 사용할려면 배열이나 list 사용해야함
             숫자 입력받을 때 한번에 주어진다면 split이나 StringTokenizer로 나눠서 하나씩 넣어주면 될 듯
split()은 해당 문자열을 나눠서 array로 반환

 

   // Step1-12 2588 : 곱셈
    public void method10(){

        // brain storming
        // 472
        // 385 에서 먼저 일의 자리부터 5x2를 해야하므로 472를 인덱스번호로 지정하고
        //          인덱스2번을 하면 2와 5를 찍어올 수 있으므로 a[2]*b[2] 이런식이면 가능할 듯?
        //          두 수를 곱해서 10이 넘어가는건 두번째 자리수에 +1,+2 이런식으로 해 볼 수 있을 듯함
        //          -> 인덱스 사용할려면 배열이나 list 사용해야함
        //              숫자 입력받을 때 한번에 주어진다면 split이나 StringTokenizer로 나눠서 하나씩 넣어주면 될 듯
        // split()은 해당 문자열을 나눠서 array로 반환

        // 입력 값 저장 변수
//        int a=0;
//        int b=0;
//
//        Scanner sc = new Scanner(System.in);
//        a = sc.nextInt();
//        b = sc.nextInt();
//
//        // 계산되서 출력할 변수
//        int num1 = 0;
//        int num2 = 0;
//        int num3 = 0;
//        int num4 = 0;

        Scanner sc = new Scanner(System.in);

        int[] arr = {};
        String a = null;
        String b = null;
        int[] a2 = {};
        int[] b2 = {};

        a = sc.nextLine();
        b = sc.nextLine();
        System.out.println(Arrays.toString(a.split(" "))); // String클래스 split은 배열로 반환
        // 472가 입력됐을 때, 다 붙어서 나오기 때문에 구분자를 사용할 게 없다...


//        int[] a2 = {Integer.parseInt(a)};




//        arr[i] = a.split(" ");


    }
728x90
반응형
728x90

 

 

Step1-8 10926번 ??!

문자열을 받으므로 스캐너로 받은 데이터를 받을 데이터의 타입은 str이여야 하기에 String타입으로 지정하고

스캐너에서도 str을 받아야하기 때문에 next() 메소드 사용

줄바꿈 해야되면 nextLine()을 사용하면 된다

 

    // Step1-8 10926번 ??!
    public void method06(){

        String name = null;

        Scanner sc = new Scanner(System.in);
        name = sc.next();

        System.out.print(name+"??!");


    }

 

 

Step1-9 18108번 1998년생인 내가 태국에서는 2541년생?!

불기(불교력) : 서기(국제표준) + 544

불기랑 서기 계산법이 위와 같으므로 스캐너로 받은 숫자에서 544(543)을 더하거나 빼주면 된다

    // Step1-9 18108번 1998년생인 내가 태국에서는 2541년생?!
    public void method07(){

        int year = 0;

        Scanner sc = new Scanner(System.in);
        year = sc.nextInt();

        System.out.printf("%d",year-543);


    }

 

 

 

import java.util.*;


public class Step1{

    // Step1-3 A+B
    public void method01(){

        int a=0;
        int b=0;
        Scanner sc = new Scanner(System.in);
        a=sc.nextInt();
        b=sc.nextInt();
        System.out.println(a+b);
    }

    // Step1-4 1001번 A-B
    public void method02(){
        // import java.util.*;
        int a = 0;
        int b = 0;

        Scanner sc = new Scanner(System.in);
        a = sc.nextInt();
        b = sc.nextInt();

        System.out.println(a-b);

    }

    // Step1-5 10998번 A*B
    public void method03(){
        // import java.util.*;
        int a = 0;
        int b = 0;

        Scanner sc = new Scanner(System.in);
        a = sc.nextInt();
        b = sc.nextInt();

        System.out.println(a*b);

    }

    // Step1-6 1008번 A/B
    public void method04(){
//        import java.util.*;

        double a = 0;
        double b = 0;

        Scanner sc = new Scanner(System.in);

        a = sc.nextDouble();
        b = sc.nextDouble();

        System.out.printf("%.10f",a/b);
//        System.out.printf("%.9f",a/b); 이것도 .11f도 정답. 8이하로는 오답.
        // double로 안하고 float로하면 소수점 아래 계산에서 오차가 생겨서 문제가 오답처리됨


//        float aa = 0.11111f;
//
//        System.out.printf("%.2f",aa);

    }

    // Step1-7 10869번 사칙연산
    public void method05(){

//        import java.util.*;
//        public class Main {
//        public static void main(String[] args) {

        int a = 0;
        int b = 0;

        Scanner sc = new Scanner(System.in);
        a = sc.nextInt();
        b = sc.nextInt();

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println(a%b);


    }

    // Step1-8 10926번 ??!
    public void method06(){

        String name = null;

        Scanner sc = new Scanner(System.in);
        name = sc.next();

        System.out.print(name+"??!");


    }

    // Step1-9 18108번 1998년생인 내가 태국에서는 2541년생?!
    public void method07(){

        int year = 0;

        Scanner sc = new Scanner(System.in);
        year = sc.nextInt();

        System.out.printf("%d",year-543);


    }
728x90
반응형

+ Recent posts