SW 공부노트

[백준] 단계별로 풀어보기 1. 입출력과 사칙연산 본문

백준풀이

[백준] 단계별로 풀어보기 1. 입출력과 사칙연산

요빈 2022. 6. 17. 02:23

방학을 맞아 백준 풀이를 시작하였다.

늦은 시작인만큼 열심히, 꾸준히 해야지 ...

 

코딩테스트나 알고리즘 문제 풀이가 처음이여서 처음부터 차근히 준비해보기로!

첫 시작은 백준 사이트의 "단계별로 풀어보기"로 해보려고 한다. 

1단계는 <입출력과 사칙연산>으로 총 14문제로 이루어져 있다.

해당 포스팅에서는 1단계의 문제 풀이에 대한 내용이 담겨있다.

https://www.acmicpc.net/step/1

 

입출력과 사칙연산 단계

입출력과 사칙연산

www.acmicpc.net

 


1. Hello World (2557)

 

1번 문제는 간단히 "Hello World!"를 출력하는 문제이다.

Java는 다음과 같이 메인 부분을 함께 첨부해야 한다고 한다!

2. We love krill(10718)

 

2번 문제는 1번과 유사하게 문자열을 출력하는 문제이다. 

두 줄에 걸쳐 "강한친구 대한육군"을 한 줄에 한 번씩 출력하기

 

3 / 4. 고양이, 개(10171, 10172)

 

3, 4번 문제는 특수기호로 그려진 고양이와 개를 출력하는 문제!

한 줄씩 구분해 +로 문자열을 합치고, \n로 줄바꿈을 표시해주면 된다.

자바스크립트는 백틱문자(`)를 사용해 문자열을 묶어주고 역슬래시 앞에 역슬래시 또 붙여주면 됨

 

 

5 ~ 7. A + B, A - B, A * B(1000, 1001, 10998)

 

5~7번은 사칙연산 문제로 두 정수 A, B를 입력받은 후 연산 결과를 출력하는 프로그램을 작성하는 것이다.

이번 문제부터 사용자의 입력을 받는 코드가 필요했는데, 최근에 계속 안드로이드 스튜디오에서만 Java를 썼어서

이런 기본적인게 생각이 안났다 ㅠㅠ 그래서 어쩔 수 없이 검색의 힘을 빌리기로 ... 

 

다음 블로그에 아~주 자세하게 설명되어 있어서 많이 참고했다.

https://st-lab.tistory.com/12

 

[백준] 1000번 : A+B - JAVA [자바]

https://www.acmicpc.net/problem/1000 1000번: A+B 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력..

st-lab.tistory.com

 

여기서 내가 사용한 방법은 Scanner 클래스이다.

따라서 Scanner 클래스를 import 해준 후 객체를 생성해 사용하였다. 

 

뺄셈과 곱셈은 위에 덧셈 위치만 바꿔주면 된다!

 

8. A/B (1008)

 

8번 문제는 사용자로부터 입력 받은 정수를 가지고 나머지 연산을 하면 된다. 

이 문제에서는 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하여야 정답으로 인정된다.

그래서 자료형을 "double"로 써야한다!

처음에 당당히 int로 작성해서 냈다가 틀려서 float으로 고쳤는데 이것도 아니어서 뭐지 했었던 ...

 

9. 사칙연산(10869)

 

9번 문제는 말 그대로 모든 연산을 다 수행해 출력하는 문제이다. 

사용자로부터 자연수 A, B를 입력받은 후 A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하면 된다.

8번 문제와 같이 조건이 없었기 때문에 자료형은 int로 통일하여 작성했다. 

 

위 문제들과 비슷하여 답변 사진은 생략!

 

10. ??!(10926)

 

문자열을 입력받아 뒤에 "??!"를 추가해 출력하면 되는 문제

간단하니 생략 ~

 

11. 1998년생인 내가 태국에서는 2541년생?!(18108)

 

이 문제는 불기 연도가 주어질 때 이를 서기 연도로 바꿔주는 프로그램을 작성하는 문제다.

불기 연도와 서기 연도의 차이가 543년이므로 입력받은 불기 연도에서 543을 뺀 값인 서기 연도를 출력하면 된다.

 

12. 나머지(10430)

 

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

 

위 질문에 대한 수식을 작성하면 된다.

이전 문제들과 비슷하므로 또 생략 

 

13. 곱셈(2588)

 

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

 

13번 문제는 위와 같다!

난 너어무 바보같이 (1)값을 문자열로 입력받아 각 자리수를 추출 -> 정수로 변환 -> 연산하는 과정을 사용했다.

풀이 후 다른 사용자의 답변을 보니 % 연산을 통해 각 자리수를 구했으면 됐었던걸 ....!

내 풀이는 너무 바보같아 나중에 참고한 답변을 첨부한다.

 

14. 새싹(25083)

 

위 강아지, 고양이와 비슷한 문제!

 


첫 째날은 여기까지! 첫날이라 그런지 문제도 쉽고 많지 않았지만 꽤나 시간이 걸렸다.

아직 백준 사이트에 얼마나 다양하고 많은 문제가 있는지 몰라서 일단 가장 간단한 문제부터 풀어봤다.

풀 문제는 많기에 쉬운 문제들은 짧은 시간 안에 빨리 풀어버릴 예정이다.

그리고 알고리즘이나 복잡한 문제들도 시작해야지!