문제1)
import java.util.Scanner;
public class Main {
/**
* 환자 레코드 출력하기
*
* 환자 레코드를 열전사 프린터로 보기좋게 프린트하려 한다.
* 환자의 ID, 환자의 병명, 그리고 비고 사항을 입력받아
* 포맷에 맞게 출력하는 프로그램을 작성하시오.
*
* 제한 사항
* - 환자의 ID는 1 이상 999999 이하의 정수로 입력된다고 가정한다.
* - 환자의 병명은 5자 이하의 문자열로 입력되며, 좌측 정렬하여 출력한다.
* - 비고 사항은 10자 이하의 문자열로 입력되며, 좌측 정렬하여 출력한다.
*
* 출력 포맷
* *----------*--------*---------------*
* | ID004029 | 코로나19 | 자가 격리 조치 |
* *----------*--------*---------------*
*
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("ID 입력(1~999999) :");
int patientID = scanner.nextInt();
System.out.println("병명 입력(5자 이하) :");
String nameOfaDisease = scanner.next();
System.out.println("비고 사항(10자 이하) :");
String note = scanner.next();
System.out.println("*----------*--------*---------------*");
System.out.printf("|ID %06d | %-5s | %-10s |\n",patientID,nameOfaDisease,note);
System.out.println("*----------*--------*---------------*");
}
}
- nextInt를 엔터로 입력받기 위해서 nextLine()을 한줄 추가 해주었다
문제2)
import java.util.Scanner;
public class InputOutput {
/**
* 입력받아 처리하기
*
* 3개의 정수를 입력받아, 그 중 최대값을 출력하고자 한다.
* 이를 수행하는 프로그램을 작성하시오.
*
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("최대값을 구할 숫자 3개를 입력하시오");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int val_MAX = a > b ? a :b;
val_MAX = val_MAX > c ? val_MAX : c;
System.out.println(val_MAX);
}
}
- 여러개의 변수가 아닌 val_MAX변수 하나로 2가지 식을 다구할 수 있었다(변수 줄여서 사용하기)
문제3
import java.util.Scanner;
public class RingCounter {
/**
* 링카운터 출력기
*
* 크기가 4인 링카운터는 아래와 같이 동작한다.
*
* 0b0001 -> 0b0010 -> 0b0100 -> 0b1000 -> 0b0001 ...
*
* 즉, 링카운터는 하나의 비트만 1의 값을 가지며 1의 위치가 N번마다 반복되는 형태로 동작한다.
*
* 링카운터의 크기 numBits 와 카운트된 횟수 numCount를 이용하여
* 현재 링카운터의 값을 10진수로 출력하는 프로그램을 작성하시오.
*/
public static void main(String[] args){
int numBits = 12;
int numCount = 19;
int currentCount = (numCount - 1) % numBits;
System.out.println(1 << currentCount);
}
}
예제 풀고 배운점
입력필요없는 문제에서 불필요하게 Scanner 넣엇던 것 수정하였음
불필요한 변수 생성 줄이고 출력문에서 shift를 해주었음
모듈러스 연산자와 비트 연산자를 활용하는 문제 였음