[백준 알고리즘] 단계별 문제풀이 Lv.1 입출력과 사칙연산

Song·2021년 11월 18일
0

studyAlgorithm

목록 보기
1/5

JAVA를 안쓴지 오래되어 알고리즘 공부할 겸 백준문제 단계별 문제풀이로 연습한다

문제 > 단계별로 풀어보기 > 입출력과 사칙연산부터 시작!

입출력과 사칙연산

2557번

Hello World! 출력하기

가장 기본이고 코딩의 시작이 아닐까 하는 Hello World! 출력하기
가장 쉬운 문제라고 생각했는데 계속 컴파일 오류나서 당황;;

우선 java 가장 기본적으로 작성해야하는 부분을 작성해주지 않으면 컴파일 에러가 난다.

public class printHelloWorld{
	public static void main(String[] args){
    //내용 작성
    }
}

그것도 모르고 몇번 해보다가 구글 검색으로 결국 해결했다. 반드시 클래스명도 public class Main으로 해줘야한다는 것도 몇번의 컴파일 에러와 검색 끝에 알았다. 어쩐지 문제의 난이도에 비해 정답률이 너무 낮더라니...

그렇게 해서 얻어낸 정답은, 다음과 같다.

(느낌표, 클래스명 등 꼭 필요한건 빼먹지 말고 다 써야한다, 안그러면 계속 컴파일 에러난다ㅠ)

10171번

고양이를 출력하기!

예제 출력에 있는 고양이를 우선 복사 후 System.out.println('')에 한줄씩 붙여 넣는다.

escape character를 어떻게 출력하는지를 묻는 문제로 escape문자를 사용해 예제 출력처럼 온전한 고양이를 출력해야한다.

Escape Characters설명
\ttab을 넣기 위함
\'' (작은따옴표)를 넣기 위함
\"" (큰 따옴표)를 넣기 위함
\r캐리지 리턴(해당 시점부터 줄바꿈)
\\\ (백슬래시)를 넣기 위함
\n다음줄로 바꾸기(한줄 삽입)
\f폼 피드를 넣기 위함
\b백스페이스

위의 탈출 시퀀스를 적용하고 나면 예제대로 출력 가능하다.


빈칸이 정확히 예제와 똑같은지 주의하도록 하자. 간단해 보이는 문제도 6번이나 틀렸기 때문에,,ㅎㅎ빈칸하나하나 찍어가면서 고치는 것보다 예제 출력을 한줄씩 그대로 가져오는게 제일 정석이다..

1000번 ~

숫자 입력받고 사칙연산 결과 출력하기

이번 문제는 입력값을 받아 그 값으로 원하는 작업을 수행한 뒤 출력하는 문제다.
지금까지 문제풀이들과 다른점은 사용자로부터 '입력'받아야 한다는 것!

입력받은 값을 사용하려면 우선 입력을 받는데 필요한 java pkg를 import 해준다.

import java.util.* 
//이렇게 쓰면 굳이 입력에 필요한 클래스뿐만 아니라 package내 다른 기능도 포함되어 있다.
import java.util.Scanner
//이럴 경우 입력받을 때 필요한 scanner 클래스만 사용가능하다

import 받은 Scanner 클래스 객체를 생성하여 사용자가 입력한 값을 받아오는 기능을 수행하도록 한다.

Scanner sc = new Scanner(System.in);
//System.in은 화면상에서 들어온 입력을 받음

생성한 클래스 객체로 scanner 객체를 사용한다.

int num1 = sc.nextInt();	//입력받을 값이 int형일 때 nextInt();
int num2 = sc.nextInt();	//그 다음 int 값을 num2에 저장하겠다는 메서드

위 순서대로 작성하고 나면 더하기, 빼기, 곱하기 모두 같은 방식으로 결과를 낼 수 있다. 더하기한 코드는 아래와 같다.

나누기 같은 경우에는 자료형을 double로 해야 나눗셈할 때 소수점자리까지 계산할 수 있다. int일 때는 정수 계산이므로 소수점으로 나눠지는 값을 구하는 나누기에 적절하지 못하다.


괄호를 씌워야지만 연산의 우선순위가 지켜지는 줄 알고 문제에서 나온 그대로 괄호를 쳐서 작성했는데 모듈러 연산(%)이 더하기나 곱셈보다 더 우선순위가 높아 굳이 괄호로 안 묶어도 같은 결과가 나온다. 대신 곱셈과 나눗셈은 우선순위가 같아 주의해야한다.
모듈러의 특징으로 1,2번 식과 3,4번 식은 어떤 입력값을 넣어도 1,2번과 3,4번의 결과값은 서로 같다.

0개의 댓글