티스토리 뷰

Q.2741 N 찍기

- 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

 

입력:

- 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.

 

출력 :

- 첫째 줄부터 N번째 줄 까지 차례대로 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = 0; i < n; i++)
            System.out.println(i+1);
    }
}
cs

 

============================================================================================

 

Q.2732 기찍 N

- 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.

 

출력 :

- 첫째 줄부터 N번째 줄 까지 차례대로 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = n; i > 0; i--)
            System.out.println(i);
    }
}
cs

 

==============================================================================================

 

Q.2739 구구단

- N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.

 

입력 :

- 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.

 

출력:

- 출력형식과 같게 N*1부터 N*9까지 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = 1; i < 10; i++)
            System.out.println(n + " * " + i + " = " + n*i);
    }
}
cs

===============================================================================================

 

Q.2438 별 찍기 - 1

- 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

 

입력 :

- 첫째 줄에 N (1<=N<=100)이 주어진다.

 

출력 :

- 첫째 줄부터 N번째 줄 까지 차례대로 별을 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = 1; i <= n; i++) {
            for(int j = 0; j < i; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}
cs

 

==============================================================================================

 

Q. 2439 별 찍기 - 2

- 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별 (예제 참고)을 출력하시오.

 

입력 :

- 첫째 줄에 N (1<=N<=100)이 주어진다.

 

출력 :

- 첫째 줄부터 N번째 줄 까지 차례대로 별을 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = 1; i <= n; i++) {
            for(int j = n-i; j > 0; j--)
                System.out.print(" ");
            for(int j = 0; j < i; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}
cs

 

=============================================================================================

 

Q. 2440 별 찍기 - 3

- 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제

 

입력 :

- 첫째 줄에 N (1<=N<=100)이 주어진다.

 

출력 :

- 첫째 줄부터 N번째 줄 까지 차례대로 별을 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = n; i > 0; i--) {
            for(int j = 0; j < i; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}
cs

 

===============================================================================================

 

Q.2441 별 찍기 - 4

- 첫째 줄에는 N, 둘째 줄에는 N-1, ..., N번째 줄에는 1개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 (예제 참고) 출력하시오.

 

입력 :

- 첫째 줄에 N (1<=N<=100) 주어진다.

 

출력 :

- 첫째 줄부터 N번째 까지 차례대로 별을 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i = n; i > 0; i--) {
            for(int j = 0; j < n-i; j ++)
                System.out.print(" ");
            for(int j = 0; j < i; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}
cs

==================================================================================================================== 

Q.1924 2007년

-오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

 

출력 :

- 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] monthOfYear = {0,31,28,31,30,31,30,31,31,30,31,30};

 

        String[] dayOfWeek = {"SUN","MON","TUE","WED","THU","FRI","SAT"};
        int daySum = 0;
        
        int month = sc.nextInt();
        int day = sc.nextInt();
        
        for(int i = 1; i < month; i++)
            daySum += monthOfYear[i];
        
        System.out.println(dayOfWeek[(daySum+day)%7]);
    }
}
cs

 

알고리즘 :

1. 0, 1월, 2월 ... 11월 까지의 일 수를 배열에 차례로 저장한다.

2. 요일도 일요일,월...토 까지 배열에 차례로 저장한다.

3. 입력받은 월의 앞까지의 총 일 수(daySum)와 입력받은 일 수(day)를 더해 7을 나눈 나머지가 요일 배열(dayOfWeek)의 인덱스이다. 

=================================================================================================================

Q.8393 합

- n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.

 

출력 :  

- 1부터 n까지 합을 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        
        int n = sc.nextInt();
        
        for(int i = 1; i <= n; i++)
            sum += i;
        
        System.out.println(sum);
    }
}
cs

 

===================================================================================================================

Q.11720 숫자의 합(문제 이상)

- N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

 

출력 :

- 입력으로 주어진 숫자 N개의 합을 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        int n = sc.nextInt();
        String number = sc.next();
  
        for(int i = 0; i < n; i++) {
            sum += number.charAt(i) - '0';
        }
        System.out.println(sum);
    }
}
cs

 

*답이 성립되지 않더라도 정답이라고 나옴.

예를들어,

11

1110987654321 을 입력하면 답이  

66이 나와야하지만, 45가 나오더라도 정답이라고 인정됨.

 

===========================================================================================

Q.11721 열 개씩 끊어 출력하기

- 알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.

한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.

 

출력 :

- 입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 이하의 글자만 출력할 수도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        String sentence = sc.next();
 
        for(int i = 1; i < sentence.length()+1; i++) {
            System.out.print(sentence.charAt(i-1));//charAt()을 이용해 문자열의 각 요소를 하나씩 출력한다.
            if(i % 10 == 0)//제어변수 i가 10으로 나누어 떨어질 때, 개행을 한다.
                System.out.println();
        }
    }
}
cs

 

 

문제 사이트 및 참고 사이트 : https://www.acmicpc.net/step/3



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.

'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글

[백준]1065번 한수  (0) 2017.10.03
[백준]4673번 셀프 넘버  (0) 2017.10.02
[백준]if문 사용해보기  (0) 2017.10.01
[백준]사칙연산 도전하기  (0) 2017.09.26
[백준]입/출력 받아보기  (0) 2017.09.26
댓글