본문 바로가기

예전글/BOJ 단계별로 풀어보기

[백준][3단계][2742번] 기찍 N (Java) * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 오랜만에 뵙습니다. 글을 안 올린 지 꽤 되었네요. 요즘 너무 피곤해서 한동안 푹 쉬고 돌아왔습니다. 이제 다시 포스팅을 할 때입니다. 3단계 첫 번째 문제를 마지막으로 풀어봤던 것 같군요. 이번 문제는 for문을 이용하는 기초를 다져보는 문제입니다. 문제 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. 예제 입력5 * 예제는 하나만 적겠습니다. 예제 출력5 4 3 2 1 답안 import java.util.Scanner; class Main { public static void main.. 더보기
[백준][3단계][2741번] N 찍기 (Java) : for문 * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 3단계 문제입니다. 3단계에서는 for문을 주로 이용하게 되는데, for문은 앞으로도 계속 이용하게 될 반복문이기 때문에 이 기회에 확실히 이해해 두시는 게 좋습니다. 3단계는 for문을 이용한 기본적인 테크닉을 익히게 됩니다. 물론 테크닉이래봤자 막 머리가 아플 정도로 어려운 그런 건 아니니까 걱정 안 하셔도 될 듯합니다. for문은 대략 다음과 같은 형태입니다. 그 아래는 용례입니다.for( 선언 ; 조건 ; 이벤트 ) { 명령어 }for( int i = 0 ; i < 10 ; i++ ) { System.out.println(i); } [선언]에서는 for문에서 사용할 정수형 변수 하나를 선언합니다. 대체로 i, j, k, ... 순으로 사용하는.. 더보기
[백준][2단계][2839번] 설탕 배달 (Java) : 동적 계획법, 함정문제(?) * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! * 본론만 원하신다면 문제 탭까지 내리시면 됩니다. * 해당 글은 PC에 최적화되어 있습니다. 안녕하세요, 갓벨입니다. 오랜만에 찾아뵈었습니다. 입시 서류도 제출했고, 추석도 지났고, 이제 면접을 기다리는 일만 남았군요. 아, 번역도...^^ 2단계 문제도 벌써 마지막 문제군요. 이번 게시글부터 설명을 이전과는 조금 다르게 할 생각입니다. 사실 하도 오랫동안 손을 못 대고 있다 보니까 변한 것도 있지만...요... 한번 문제를 보니까 이번 문제, 뭔가 깁니다. 문제에 스토리가 있습니다. 수학 문제를 풀 때처럼, 읽으면서 풀이를 떠올려 보았습니다. 그런데 개인적인 느낌입니다만, 2단계에서 여태까지 다뤘던 문제들과는 꽤 다른 난이도였습니다. 단순한 문제.. 더보기
[백준][2단계][10430번] 나머지 (Java) : 사칙연산(6), 증명 * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 10430번, '나머지'로 찾아뵈었습니다. 2단계도 벌써 반 이상 했군요. 이번에 주로 다루어 볼 것은 mod 연산자, %입니다. 앞의 수(피연산자)를 뒤의 수(연산자)로 나눈 나머지를 구하는 역할을 하죠. 이번 문제는 뭔가 생각해 볼만한 여지가 있습니다. 물론 문제만 푸는 거라면 입출력만 제대로 하면 되지만, 문제에서 주어진 규칙이 수학적으로 실제로 성립하는지 알아보는 것도 재밌을 듯합니다. '풀이'란에 '>어떤 수를 입력하든 항상 같게 나올까?'를 누르시면 이에 관한 내용이 나옵니다. 문제 (A+B)%C는 (A%C + B%C)%C 와 같을까? (A×B)%C는 (A%C × B%C.. 더보기
[백준][2단계][10869번] 사칙연산 (Java) : 사칙연산(5) * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 10869번, '사칙연산'으로 찾아뵈었습니다. 이번 문제는, 여태까지 배워 왔던 사칙 연산자들을 하나씩 써 보는 겁니다. [A+B]에 있는 사칙 연산자에 대한 설명을 다시 가져와 보겠습니다. 사칙 연산자란? 사칙 연산자는 말 그대로 사칙연산을 수행하는 연산자입니다. 그리고 연산자는 프로그래밍에서 사용하는 다양한 기호들입니다. 그러니까 얘네들 말이죠. 사실, 하나 더 있습니다. ,이 녀석이죠. 각각의 설명은 다음과 같습니다.+ : 덧셈을 수행합니다. a + b라고 입력하면 앞과 뒤의 값을 더하죠.- : 뺄셈을 수행합니다. a - b라고 입력하면 앞의 값에서 뒤의 값을 뺍니다.* : .. 더보기
[백준][2단계][1008번] A/B (Java) : 사칙연산(4), Double * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 1008번, A/B로 찾아뵈었습니다. 1000번 [A+B], 1001번 [A-B], 10998번 [A*B]를 거쳐 오신 여러분들께 약간의 함정(?)이 될 수 있는 문제입니다. 물론, 자료형에 대한 이해가 잘 되어 있으시다면 한 방에 해결하실 수 있을 겁니다. 우선 문제를 보시죠.문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10-9 까지 허용한다. 예제 입력 11 3 예제 출력 10.3333333333333333333333333.. 더보기
[백준][2단계][10998번] A*B (Java) : 사칙연산(3) * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 10998번, A*B로 찾아뵈었습니다. Java를 위시한 프로그래밍 언어에는 다양한 연산자가 있습니다. 대입 연산자, 사칙 연산자, 조건부 연산자... 이번 글에서 다룰 문제는 사칙 연산자, 그 중에서 '*'를 이용해 보는 문제입니다. *는 앞과 뒤의 수를 곱하는 역할을 합니다. [A+B]문제에서 이미 알아 보았으니 사칙 연산자에 대해 더 설명할 필요는 없겠죠? 문제를 풀어 봅시다.문제 두 정수 A와 B를 입력받은 다음, A*B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A*B를 출력한다. 예제 입력1 2 예.. 더보기
[백준][1단계][11719번] 그대로 출력하기 2 (Java) * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 11719번, '그대로 출력하기 2'로 찾아뵈었습니다. 1단계의 마지막 문제인데요, Java나 C#을 쓰는 분들에게는 좋은 소식입니다. 그대로 출력하기 '2'라지만 해당 언어 사용하시는 분들에게는 이번 문제, 저번 문제랑 풀이가 완전히 똑같거든요. 설마 했는데 진짜 그대로 되더라구요 ;; 그러니, 자세한 풀이에 관해서는 11718번 [그대로 출력하기]를 참고해 주시기 바랍니다. Q. 왜 똑같나요? Scanner 클래스의 NextLine() 메서는 앞선 문제에서 말씀드렸듯 한 줄 전체를 입력받는 데 사용됩니다. 그러니까, 공백이 몇 개 있는지와 관계없이 그 줄을 그대로 출력하는데다 .. 더보기
[백준][1단계][11718번] 그대로 출력하기 (Java) : NextLine() * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 11718번, 그대로 출력하기로 찾아뵈었습니다. 사소한 것 하나때문에 계속 런타임 에러를 뿜어내는 문제입니다. Next()? NextLine()? Next와 NextLine()은 Scanner 클래스의 메서드입니다. Scanner의 객체를 생성하고 기존에는 NextInt()처럼 특정 자료형을 받는 메서드를 이용했습니다. 둘 다 String(문자열) 자료를 입력받는데, Next()는 입력되는 문자열부터 공백 전까지, NextLine()은 입력받은 줄 전체의 문자열을 저장하는 역할을 수행합니다. 이번 문제에서는 NextLine() 사용합니다. 문제를 봅시다. 문제 입력 받은 대로 출력.. 더보기
[백준][1단계][10718번] We love kriii (Java) : 출력 * 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요. 안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 10718번, 'We love kriii'로 찾아뵈었습니다. 난이도만 따져 보면 2557번 [Hello World!]급인데, 설마 두 줄 출력한다고 어려워졌단 건 아닐테고, kriii가 실제 유전데 군대가서(강한친구 대한육군) 만든 문제인가요...? 잘 모르겠네요. 이번 문제부터 문제 상황이 상세하게 주어집니다. 앞으로 나올 문제들을 보면, '문제 상황이 주어짐 -> 이를 해결할 프로그램을 제작하시오'라는 패턴으로 문제가 제공됩니다. 2557번 [Hello World!]에 자세한 설명이 있습니다만. 좀 더 보충 설명을 해 보자면, '문제'에서는 문제 상황, 이야기나 프로그램의 유형.. 더보기