728x90

백준 단계별로 풀어보기

 

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!112if문if문을 사용해 봅시다.53for문for문을

www.acmicpc.net


1. 입출력과 사칙연산

10869. 사칙연산


이미지를 클릭하시면 문제 페이지로 이동합니다.

순서대로 단계별을 풀어 오셨으면 어려울 것은 없지만, 

2가지 정도 주의 깊게 볼만한(틀릴만한) 부분이 있는 것 같네요.

 

1. A/B (몫) 

  • 이게 뭐 어쨌다고? 싶을 수 있지만, c++ 과 파이썬에서 미묘하게 다른 부분입니다. 
  • 문제에서는 '몫' 이라는 자연수를 요구한다는 사실을 유의해서 풀어보세요.
  • 풀어보시고, 모르겠으면 아래의 언어별 풀이를 봐주세요.

 

2. % ?

새로 등장한 기호가 있습니다. '%' 인데요.

  • 나머지 연산이라는 의미로, '모듈러' 연산 혹은 기호 라고도 합니다. 
  • a % b = a를 b로 나눈 나머지를 구하라.
  • +, -, *, / 와 같이 %도 그대로 써 주시면 됩니다. 이제 C++의 산술 연산자는 모두 배웠네요.

 

c++과 파이썬의 연산자에 대해 더 알고 싶은 분들은 아래의 링크를 참고 해 주세요. (추가 예정)

 


C++

c++의 경우 int형 자연수를 / 로 나눌 경우 int형으로 결과가 반환됩니다.
문제에서 자연수만 input으로 들어온다고 했으니, 그대로 int로 받은 후 사용하시면 됩니다.

 

최종 코드

#include <iostream>

int main(){
    int a, b;
    std::cin >> a >> b;
    
    std::cout << a+b << "\n";
    std::cout << a-b << "\n";
    std::cout << a*b << "\n";
    std::cout << a/b << "\n";
    std::cout << a%b << "\n";

}

 


Python

파이썬의 경우, c++처럼 냅다 /를 써버리면 안 됩니다.

파이썬에서는 '나누기' 연산과 '몫' 연산이 분리되어 있습니다.

 

' / ' 연산자

  • 나누기 연산입니다.
  • int를 사용한다고 해도 실수형으로 결과가 반환됩니다.
  • 만약 이 기호를 사용했다면, 결과값을 int로 형 변환하는 과정이 필요합니다.

 

' // ' 연산자

  • c++에는 존재하지 않는 기호임을 유의하세요.
  • '몫' 을 구하는 연산으로 항상 자연수가 반환됩니다. 이 문제에서 원하는 연산자는 아마도 이 연산자겠죠.

 

최종 코드

a, b = map(int,input().split())

print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)

아래와 같이 print를 한 번만 호출하면 더 좋겠죠.

a, b = map(int,input().split())

print(a+b,a-b,a*b,a//b,a%b,sep='\n')

 

 

728x90

+ Recent posts