박미미의 지식에서 쌓는 즐거움

[코드업 기초100제] 1091~1099번 JAVA 본문

IT 공부/Java

[코드업 기초100제] 1091~1099번 JAVA

낑깡좋아 2021. 8. 13. 08:05

1091) 수 나열하기3

- 시작값(a), 곱할값(m), 더할값(d), 몇 번째인지를 나타내는 정수(n)가 공백을 두고 입력한다 / n번째 값 출력

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(); //시차값
        int m = sc.nextInt(); //곱할 값
        int d = sc.nextInt(); //더할 값
        int n = sc.nextInt(); //몇번째 수인지 의미
        int sum = 0;
        
        for(int i=1; i<=n; i++) {
            if(i==1) {
                sum = a;
            }else {
                sum = sum * m + d ;
            }
            if(i==n) System.out.println(sum);    
        }
    }
}
 
 
cs

 

1092) 함께 문제 푸는 날

- 3명의 방문주기가 입력, 3명이 동시에 문제푸는 날

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(); 
        int b = sc.nextInt(); 
        int c = sc.nextInt(); 
        int day = 1;
        
        while(day%a!=0 || day%b!=0 || day%c!=0) {
            day++;
        }
        System.out.printf("%d", day);
    }
}
 
cs

 

 

1093) 이상한 출석번호 부르기

- 출석번호를 n번 무작위로 불렀을때 각 번호(1~23)가 불린 횟수를 각각 출력해보자

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); 
        int arr[] = new int[23];
        
        for(int i=1; i<=n; i++) {
            arr[sc.nextInt()-1]++;
        }
        
        for(int j=0; j<arr.length ; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}
 
 
cs

 

1094) 이상한 출석번호 부르기2

- 출석번호를 n번 무작위로 불렀을때 부른 번호를 거꾸로 출력해보자

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); 
        int arr[] = new int[n];
        
        for(int i=0; i<n; i++) {
            arr[i] = sc.nextInt();
        }
        
        for(int j=n-1; j>=0 ; j--) {
            System.out.print(arr[j] + " ");
        }
    }
}
 
cs

 

1095) 이상한 출석번호 부르기3

- 출석번호를 n번 무작위로 불렀을때, 가장 빠른 번호를 출력해보자

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); 
        int arr[] = new int[n];
        int min = 100//최소값
        
        for(int i=0; i<n; i++) {
            arr[i] = sc.nextInt();
            
            if(min>arr[i]) min = arr[i];
        }        
        System.out.print(min);
    }
}
 
cs

 

1096) 바둑판에 흰 돌 놓기 (2차원배열)

- 입력: 바둑판에 올려 놓을 흰 돌의 갯수 첫 줄에 입력. 둘째 줄부터 n+1번째 줄까지 흰 돌을 놓을 좌표(x,y)가 n줄 입력된다

- 출력: 흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); //흰 돌의 갯수 입력 
        int arr[][] = new int[19][19];
        
        // 흰 돌 좌표 값 입력
        for(int i=0; i<n; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            
            arr[x-1][y-1]=1;
        }        
        
        for(int a=0; a<19; a++) { //한 줄 (위에서 아래로)씩
            for(int b=0; b<19; b++) { // 한 열(왼쪽에서 오른쪽)씩
                System.out.print(arr[a][b] + " ");
            }
            System.out.println(); // 줄바꾸기
        }    
    }
}
 
cs

 

 

1097) 바둑알 십자 뒤집기

- 입력: 바둑알이 깔려있는 상황이 19*19 크기의 정수값으로 입력;;

        십자뒤집기 횟수 n 입력된다.

        십자뒤집기 좌표(x,y)가 n줄 입력된다 (n은 100이하 자연수)

- 출력: 십자 뒤집기 결과 출력

이 무식한 문제..."십자 뒤집기가 뭐임;; 흑백을 바꾸라는건가..."하다가 다른사람 코드보고 이해함;;

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        
        int arr[][] = new int[19][19];
        
        // 바둑판 입력
        for(int i=0; i<19; i++) { //한 줄 (위에서 아래로)씩
            for(int j=0; j<19; j++) { // 한 열(왼쪽에서 오른쪽)씩
                arr[i][j] = sc.nextInt();
            }
        }    
        
        //십자뒤집기 횟수 n 입력
        int n = sc.nextInt(); 
        
        //십자뒤집기 좌표 (x,y) n줄 입력
        for(int a=0; a<n; a++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            
            //x행 흑백번경 (흑색0, 흰색1)
            for(int i=0; i<19; i++) {
                if(arr[x][i]==0) arr[x][i] =1;
                else arr[x][i]=0;
            }
            //y열 흑백번경 (흑색0, 흰색1)
            for(int j=0; j<19; j++) {
                if(arr[j][y]==0) arr[j][y] =1;
                else arr[j][y]=0;
            }    
        }        
        
        //십자뒤집기 후 바뀐 바둑판 출력
        for(int i=0; i<19; i++) { //한 줄 (위에서 아래로)씩
            for(int j=0; j<19; j++) { // 한 열(왼쪽에서 오른쪽)씩
                System.out.print(arr[i][j] + " ");
            }
            System.out.println(); // 줄바꾸기
        }    
    }
}
 
cs

 

1098) 설탕과자 뽑기 

- 입력: 첫줄- 격자판의 세로h,가로w 입력 / 둘째줄 - 놓을 수 있는 막대의 갯수 n / 셋째줄 - 막대의길이l, 방향d, 좌표(x,y)

- 출력: 모든 막대를 놓은 격자판의 상태를 출력. 막대에 의해 가려진 경우1, 아닌경우 0 출력      

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        
        //격자판 크기(h,w)
        int h = sc.nextInt();
        int w = sc.nextInt();
        int arr[][] = new int[h+1][w+1];
        
        //막대의 개수
        int n = sc.nextInt();
                
        // 막대의 길이L, 방향d, 좌표xy 입력
        for(int a=0; a<n; a++) { 
            int L = sc.nextInt();
            int d = sc.nextInt(); // 막대의방향d (가로0, 세로1)
            int x = sc.nextInt();
            int y = sc.nextInt();                    
            
            // 막대가 가로 방향일 때..
            if(d==0) {  
                for(int j=0; j<L; j++) { // 한 열(왼쪽에서 오른쪽)씩 
                    arr[x][y+j] = 1;
                }
            }
            
            // 막대가 세로 방향일 때..
            if(d==1) {  
                for(int i=0; i<L; i++) { 
                    arr[x+i][y] = 1;
                }
            }
        }
        
        // 칠해진 격자 출력
        for(int i=1; i<=h; i++) {
            for(int j=1; j<=w; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println(); 
        }
    }
}
cs

 

1099) 성실한 개미

- 입력: 10*10 크기의 미로 상자의 구조와 먹이 위치 입력

- 출력: 개미 이동경로를 9로 표기

import java.util.Scanner;
 
public class codeUp{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int arr[][] = new int[11][11];
        
        //미로 입력
        for(int i=1; i<11; i++) {
            for(int j=1; j<11; j++) {
                arr[i][j] = sc.nextInt();
            }
        }
        
        //개미의 출발위치
        int x=2;
        int y=2;
        
        //반복
        for(int i=x; i<arr.length; i++) {
            for(int j=y; j<arr.length; j++) {
                if(arr[i][j] == 0) { //갈 수 있는 곳
                    arr[i][j] = 9;
                }else if(arr[i][j] == 1) { //장애물
                    // 아래쪽으로 이동
                    x++; y=j-1;
                    break;
                }else if(arr[i][j] == 2) { // 먹이
                    arr[i][j] = 9;
                    break;
                }
            }
        }        
        
        // 경로 출력
        for(int i=1; i<arr.length; i++) {
            for(int j=1; j<arr.length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println(); 
        }
    }
}
cs
Comments