Codeup : 기초 100제(1041 ~ 1049)

Java : codeup 기초 100제 (1041~1049)

codeup 기초 100제 저의 문제풀이 입니다.

혹시 더 좋은 방법 알려주신다면 정말 감사하겠습니다!

1041

영문자 1개를 입력받아 그 다음 문자를 출력해보자.

영문자 ‘A’의 다음 문자는 ‘B’이고, 영문자 ‘0’의 다음 문자는 ‘1’이다.

a	// 입력하면
b	// 출력합니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			char character = br.readLine().charAt(0);
			 ++character;
			 // 다음 문자를 출력하기위해 +1을 더 해줍니다.
			 
			 bw.write(character);
			 bw.flush();
			 bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1042

정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자. 단, -2147483648 <= a <= b <= +2147483647, b는 0이 아니다.

정수 2개(a, b)가 공백을 두고 입력된다.

1 3	// 입력하면
0	// a(1)을 b(3)로 나눈 몫을 출력합니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String strNum = br.readLine();
			
			StringTokenizer stk = new StringTokenizer(strNum);
			
			List<Integer> nums = new ArrayList<Integer>();
			// 정수를 받기 위한 리스트
			
			while (stk.hasMoreTokens()) {
				nums.add(Integer.parseInt(stk.nextToken()));				
			}
			
			int result = nums.get(0) / nums.get(1);
			
			bw.write(Integer.toString(result));
			bw.flush();
			bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1043

정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자. 단, 0 <= a, b <= +2147483647, b는 0이 아니다.

정수 2개(a, b)가 공백을 두고 입력된다.

10 3	// 두 숫자가 입력되면
1		// a(10)을 b(3)로 나눈 나머지가 나옵니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String strNums = br.readLine();
			
			StringTokenizer stk = new StringTokenizer(strNums);
			
			List<Integer> nums = new ArrayList<Integer>();
			// 정수를 받기 위한 리스트
			
			while (stk.hasMoreTokens()) {
				int num = Integer.parseInt(stk.nextToken());
				
				if(num < 0)
					return;
				// 숫자가 0보다 작으면 프로그램을 종료해줍니다.
				
				nums.add(num);				
			}
			
			int result = nums.get(0) % nums.get(1);
			
			bw.write(Integer.toString(result));
			bw.flush();
			bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1044

정수를 1개 입력받아 1만큼 더해 출력해보자. 단, -2147483648 ~ +2147483647 의 범위로 입력된다.

주의 계산되고 난 후의 값의 범위(데이터형)에 주의한다.

2147483647	// 정수가 입력되면
2147483648	// 출력됩니다. (정수 범위를 넘어서도 제대로 출력해줍니다.)

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String Strnum = br.readLine();
			long num = Long.parseLong(Strnum);
			++num;
			
			bw.write(Long.toString(num));
			bw.flush();
			bw.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1045

정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자. 단 0 <= a, b <= 2147483647, b는 0이 아니다.

10 3	// 정수 두개가 입력되면
13		// 합
7		// 차
30		// 곱
3		// 몫
1		// 나머지
3.33	// 나눈 값을 실수로 소수점이하 셋째 자리에서 반올림해 출력합니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String Strnums = br.readLine();
			StringTokenizer stk = new StringTokenizer(Strnums);
			
			List<Integer> nums = new ArrayList<Integer>();
			
			while(stk.hasMoreTokens())
			{
				int num = Integer.parseInt(stk.nextToken());
				
				if (num < 0)
					return;
				
				nums.add(num);
			}
			
			int a = nums.get(0);
			int b = nums.get(1);
			double dividedNum = (double)a / (double)b;
			// 가독성을 위해 변수에 저장해놓습니다.
			
			bw.write(Integer.toString(a + b));
			bw.write("\r\n");
			bw.write(Integer.toString(a - b));
			bw.write("\r\n");
			bw.write(Integer.toString(a * b));
			bw.write("\r\n");
			bw.write(Integer.toString(a / b));
			bw.write("\r\n");
			bw.write(Integer.toString(a % b));
			bw.write("\r\n");
			bw.write(String.format("%.2f", dividedNum));
			bw.flush();
			bw.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1046

정수 3개를 입력받아 합과 평균을 출력해보자. 단, -2147483648 ~ +2147483647

1 2 3	// 정수 3개가 입력되면
6		// 합과
2.0		// 평균이 소수점 이하 둘째 자리에서 반올림해서 출력됩니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String strNums = br.readLine();
			StringTokenizer stk = new StringTokenizer(strNums);
			List<Integer> nums = new ArrayList<Integer>();
			
			while (stk.hasMoreTokens()) {
				int num = Integer.parseInt(stk.nextToken());
				
				nums.add(num);
			}
			
			int sum = 0;
			
			for (int num : nums)
				sum += num;
			// list의 모든 값을 더해줍니다.
			
			double averageNum = (double)sum / (double)nums.size();
			
			bw.write(Integer.toString(sum));
			bw.write("\r\n");
			bw.write(String.format("%.1f", averageNum));
			bw.flush();
			bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1047

정수 1개를 입력받아 2배 곱해 출력해보자.

1024	// 정수를 입력하면
2048	// 두배로 출력됩니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String strNum = br.readLine();
			int num = Integer.parseInt(strNum);
			num <<= 1;
            // 비트연산자를 이용해 2배 해줍니다!
			
			bw.write(Integer.toString(num));
			bw.flush();
			bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1048

정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자. 0 <= a <= 10, 0 <= b <= 10

정수 2개가 공백을 두고 입력된다.

1 3	// 정수를 2개 입력하면
8	// 1에 2의 3승 곱한 값이 출력됩니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String strNums = br.readLine();
			StringTokenizer stk = new StringTokenizer(strNums);
			List<Integer> nums = new ArrayList<Integer>();
			
			while(stk.hasMoreTokens())
			{
				int num = Integer.parseInt(stk.nextToken());
				
				if(num < 0 || num > 10)
					return;
				// 숫자가 0~10 사이가 아니면 종료됩니다.
				nums.add(num);
			}
			int result = nums.get(0) * (int)Math.pow(2, nums.get(1));
			// a * 2^b
            
			bw.write(Integer.toString(result));
			bw.flush();
			bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

1049

두 정수(a, b)를 입력받아

a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 프로그램을 작성해보자.

두 정수 a, b가 공백을 두고 입력된다. -2147483648 <= a, b <= +2147483647

9 1		// 정수 2개가 입력되면
1		// a(9) 가 b(1)보다 크면 1, 작거나 같으면 0을 출력합니다.

내코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		
		OutputStreamWriter osw = new OutputStreamWriter(System.out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		try {
			String strNums = br.readLine();
			StringTokenizer stk = new StringTokenizer(strNums);
			List<Integer> nums = new ArrayList<Integer>();
			
			while(stk.hasMoreTokens())
			{
				int num = Integer.parseInt(stk.nextToken());
				
				nums.add(num);
			}
			
			int result;
			
			if (nums.get(0) > nums.get(1))
				result = 1;
			else
				result =0;
			
			bw.write(Integer.toString(result));
			bw.flush();
			bw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

해당 코드들은 저의 GitHub에서 확인할 수 있습니다.

댓글남기기