Codeup : 기초 100제(1031 ~ 1040)
Java : codeup 기초 100제 (1031~1040)
codeup 기초 100제 저의 문제풀이 입니다.
혹시 더 좋은 방법 알려주신다면 정말 감사하겠습니다!
1031
10진수를 입력받아 8진수(octal)로 출력해보자.
10진수 1개가 입력된다. 단, 입력되는 정수는 int 범위이다.
10 // 입력하면
12 // 8진수로 출력됩니다.
내코드
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 num = br.readLine();
int changedNum = Integer.parseInt(num);
// num 문자열을 int로 변환하고
bw.write(Integer.toOctalString(changedNum));
// changedNum을 8진수 형태의 문자열로 출력합니다.
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1032
10진수를 입력받아 16진수(hexadecimal)로 출력해보자.
255 // 입력하면
ff // 16진수로 출력됩니다.
내코드
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 num = br.readLine();
int changedNum = Integer.parseInt(num);
bw.write(Integer.toHexString(changedNum));
// int형을 16진수로 바꿔서 문자열로 출력합니다.
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1033
10진수를 입력받아 16진수(hexadecimal)로 출력해보자. (대문자로)
255 // 입력하면
FF // 10이 넘어가는 값은 대문자로 출력합니다.
내코드
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 num = br.readLine();
int changedNum = Integer.parseInt(num);
bw.write(Integer.toHexString(changedNum).toUpperCase());
// int형을 16진수로 바꿔서 문자열로 출력합니다.(영어는 대문자로)
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1034
8진수로 입력된 정수 1개를 10진수로 바꾸어 출력해보자.
13 // 8진수를 입력하면
11 // 10진수로 출력됩니다.
내코드
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 num = br.readLine();
bw.write(Integer.valueOf(num, 8).toString());
// valueOf(num,8)은 8진수로 입력된 문자열을 10진수로 바꾸어 줍니다.
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1035
16진수로 입력된 정수 1개를 8진수로 바꾸어 출력해보자.
f // 16진수를 입력하면
17 // 8진수로 출력됩니다.
내코드
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 num = br.readLine().toUpperCase();
// Integer.valueOf()에 16진수를 넣어줄 때 소문자면 오류가 나기 때문에 입력되는 모든 문자를 대문자로 바꾸어줍니다.
int changedNum = Integer.valueOf(num, 16);
// 16진수형태의 문자열을 10진수로 바꾸어 받아옵니다.
bw.write(Integer.toOctalString(changedNum));
// 10진수를 8진수 형태의 문자열로 출력합니다.
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1036
영문자 1개를 입력받아 아스키 코드표의 10진수 값으로 출력해보자.
A // 영문이 입력되면
65 // 그에 해당하는 아스키코드가 출력됩니다.
내코드
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 alphabet = br.readLine().charAt(0);
// 아스키코드로 변환하기 위해선 문자열이아니라 문자로 받아야합니다.
int ascii = (int)alphabet;
// 형변환을 하면 문자는 자동으로 아스키코드로 받아옵니다.
bw.write(Integer.toString(ascii));
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1037
10진 정수 1개를 입력받아 아스키 문자로 출력해보자. 단, 0 ~ 255 범위의 정수만 입력된다.
65 // 정수가 입력되면
A // 해당하는 아스키문자가 나옵니다
내코드
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 num = br.readLine();
int intNum = Integer.parseInt(num);
byte byteNum = (byte)intNum;
char ascii = (char)(byteNum & 0xff);
// java의 byte는 unsigned를 지원해주지 않기 때문에 비트연산을 통해 0~255로 만들어줍니다. (256이 입력되면 0으로 인식합니다.)
bw.write(String.valueOf(ascii));
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1038
정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자. (단, 입력되는 정수는 -1073741824 ~ 1073741824 이다.)
123 -123 // 정수 두 개가 입력되면
0 // 결과가 출력됩니다.
내코드
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 num = br.readLine();
String[] tokens = num.split(" ");
// 공백을 기준으로 문자열을 나누어 줍니다.
long sum = 0;
// 합을 저장할 변수. 만약 1073741824 + 1073741824 하게 되면 정수범위를 넘어가게 되므로 long타입으로 주었습니다.
for (int i = 0; i < tokens.length; i++) {
sum += Long.parseLong(tokens[i]);
}
bw.write(Long.toString(sum));
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1040
입력된 정수의 부호를 바꿔 출력해보자. 단, -2147483647 ~ +2147483647 범위의 정수가 입력된다.
-1 // 입력하면
1 // 부호가 바뀌어서 출력됩니다.
내코드
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 num = br.readLine();
int resultNum = -Integer.parseInt(num);
bw.write(Integer.toString(resultNum));
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
해당 코드들은 저의 GitHub에서 확인할 수 있습니다.
댓글남기기