본문 바로가기

Study Log/알고리즘

[알고리즘] 백준 단계별 학습하기 - 입출력과 사칙연산

728x90

사용언어 : python, java

 

1 2557 Hello World 41.868%
Hello World!를 화면에 출력하는 문제 (예제 출력과 똑같이 출력해야 합니다.)
2 10718 We love kriii 67.239%
주어진 예제처럼 출력하는 문제 2
3 10171 고양이 34.611%
주어진 예제처럼 출력하는 문제 3
4 10172 40.360%
주어진 예제처럼 출력하는 문제 4
5 1000 A+B 43.555%
두 수를 입력받고 합을 출력하는 문제
6 1001 A-B 72.038%
두 수를 입력받고 뺄셈을 한 결과를 출력하는 문제
7 10998 A×B 78.375%
곱셈 문제
8 1008 A/B 33.562%
나눗셈 문제. 이 문제에는 "스페셜 저지" 표시가 붙어 있는데, 이것은 예제 출력과 꼭 똑같이 출력할 필요는 없고 조건에 맞는 답을 출력하면 된다는 뜻입니다.
9 10869 사칙연산 51.963%
모든 연산 문제
10 10430 나머지 56.927%
네 개의 계산식을 계산하는 문제. 이 문제를 푼 다음에는 직접 입력을 만들어서 넣어 봅시다. 어떤 사실을 관찰할 수 있나요?
11 2588 곱셈 50.957%
빈 칸에 들어갈 수는?

#2557번 문제 (41.868%)

Hello World!를 화면에 출력하는 문제 (예제 출력과 똑같이 출력해야 합니다.)

print("Hello World!");

느낌표를 안써서 여러번 틀렸던 문제ㅜ ㅋㅋㅋㅋㅋ

 

#10718번 문제 (67.239%)

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

print("강한친구 대한육군");
print("강한친구 대한육군");

#10171번 문제 (34.611%)

고양이만들기

print("\    /\\");
print(" )  ( ')");
print("(  /  )");
print(" \(__)|");

고양이 만들기문제에서 주의 해야했던 점은

첫째 줄에서 고양이 귀부분이 백슬래쉬 두개로 나와있는데 출력결과에는 \ 하나로 보여진다.

해당 기호를 사용하기 위해서는 \를 한번더 써주어야한다!

 

#10172번 문제 (40.360%)

개만들기

print("|\_/|");
print("|q p|   /}");
print('( 0 )"""\\');
print('|"^"`    |');
print('||_/=\\\\__|');

개만들기 문제에서 주의할 점은 

""" 표시로 되어있는 부분이 print 함수 사용시 따옴표와 겹치지않게하기위해 

홑따옴표(')를 이용한 점이다

 

#1000번 문제 (43.555%)

두 수를 입력받고 합을 출력하는 문제 (A+B)

a,b = input("").split();
a = int(a);
b = int(b);
if 0<a and b<10 :
    print(a+b);

JAVA

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
      	int b = sc.nextInt();
      	System.out.println(a+b);
    }
}

입력받는 값의 범위가 정해져있어, if 처리를 병행함

 

아래 단계들은 비슷하여 생략함

 

#1001번 문제 (72.038%)

두 수를 입력받고 차를 출력하는 문제 (A-B)

 

#10998번 문제 (78.375%)

두 수를 입력받고 곱을 출력하는 문제 (A*B)

 

#1008번 문제 (33.562%)

두 수를 입력받고 나눈 값을 출력하는 문제 (A/B)

 

#10869번 문제 (51.963%)

두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 

 

입력 : 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)

a,b = input("").split();
a = int(a);
b = int(b);
if 1<=a and b<=10000 :
    print(a+b);
    print(a-b);
    print(a*b);
    print(int(a/b)); #몫만 구하기 위해 파싱
    print(a%b);

 

#10430번 문제 (56.927%)

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

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

세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

a,b,c = input("").split();
a = int(a);
b = int(b);
c = int(c);

if 2<=a<= 10000 and 2<=b<= 10000 and 2<=c<= 10000:
    print((a+b)%c);
    print(((a%c)+(b%c))%c);
    print((a*b)%c);
    print(((a%c)*(b%c))%c);

 

 

#2588번 문제(50.958%)

 

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

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

num1 = int(input(""));
num2 = input(""); 
for i in range(len(num2),0,-1) :
    print(int(num1)*int(num2[i-1]));
print(int(num1)*int(num2));

연산에 따라 두번째 숫자는 문자열로 받아서 가장뒤의 값부터 찾아와서 곱해준다

가장 앞 열(index 0)에 올떄까지 반복하고

마지막에는 곱한 값을 출력한다

 

 


comment : 백준단계별 시작,, 재밌군!

반응형