[백준] 1075번 - 나누기 (파이썬)

2022. 8. 28. 23:13·🎲 알고리즘 공부/백준

[문제]
두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다.

 

예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.

 

입출력 예시


https://www.acmicpc.net/problem/1075

 

1075번: 나누기

첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.

www.acmicpc.net

 


🎨 풀이

💡 전체 코드

n = int(input())
f = int(input())

tmp = (n // 100) * 100

a = f - ( tmp % f )

if a == f :
    print("00")
else :
    if len(str(a)) == 1:
        print("0",end='')
        print(a)
    else :
        print(a)

> 핵심 : n의 가장 뒤 두자리를 00으로 바꾼 후 거기서 얼마만큼 더 있으면 나누어떨어지는 지 알아보고 그만큼 출력하기

 

🍦 코드 설명 (실행 순서대로 나열)

# main

n = int(input())
f = int(input())

1. n과 f를 입력받는다.
- n : 정수 (뒤에 두자리 변경될 예정)
- f : 나눌 수

tmp = (n // 100) * 100
a = f - ( tmp % f )

2. tmp에 n // 100 * 100 값을 넣는다.
- 100을 나눴다가 그대로 곱해주는 이유는, n의 가장 뒤 두자리를 00으로 만들어주기 위함이다.

- (n이 100보다 크거나 같다고 했기 때문에 오류가 나지 않는다)
- (ex) 23665 => 23600

3. a에 f - (tmp % f) 의 연산 값을 넣어준다.
- (ex) n = 200 , f = 34 일 때 나눈다면 몫은 6, 나머지는 30이 나온다.
- 여기서 4만 더해주면 n 이 f 로 나누어떨어지는 수 중 가장 작은 수를 만들어낼 수 있다.
- 그래서 f - (tmp % 4) 값을 a에 넣어준 후 경우에 맞게 출력해주는 것이다.

 

if a == f :
    print("00")
else :
    if len(str(a)) == 1:
        print("0",end='')
        print(a)
    else :
        print(a)

4. 경우에 맞게 출력해주면 된다.
4-1. 만약, a가 f와 같다면 그건 다른 걸 더해주지 않아도 나누어떨어진다는 뜻이기 때문에 00을 출력해준다.
4-2. a와 f가 같지 않은데, a가 한 자리 숫자라면 앞에 0을 붙여준 후 a를 출력한다.
4-3. a와 f가 같지 않은데 a가 두자리라면 a를 그대로 출력해준다.


끝~

⭐ 느낀점

> 이 문제는 그 백준 질문 게시판에 올라와있길래 반례를 찾아주고 싶어 풀게 되었다. 이 문제를 푸는 방식은 좀 괜찮았던 것 같은데 그것을 설명해내는 건 좀 서툴렀다고 생각한다. ㅠㅠ 분발해야겠다. 그래도 처음으로 답변도 남겨보고 재밌는 경험을 했다.

'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글

[백준] 11721번 - 열 개씩 끊어 출력하기 (파이썬)  (0) 2022.08.30
[백준] 2475번 - 검증수 (파이썬)  (0) 2022.08.29
[백준] 2576번 - 홀수 (파이썬)  (0) 2022.08.28
[백준] 1924번 - 2007년 (파이썬)  (0) 2022.08.26
[백준] 2920번 - 음계 (파이썬)  (0) 2022.08.25
'🎲 알고리즘 공부/백준' 카테고리의 다른 글
  • [백준] 11721번 - 열 개씩 끊어 출력하기 (파이썬)
  • [백준] 2475번 - 검증수 (파이썬)
  • [백준] 2576번 - 홀수 (파이썬)
  • [백준] 1924번 - 2007년 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (280)
      • 📑 신입일기 (35)
      • 🍪 Web (1)
        • angular (1)
        • JavaScript (0)
      • 🧩 Node.js 공부 (2)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 🎨 Tistory Customizing (1)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 📗 spring boot 공부 (9)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    정처기
    일기
    충무로
    코드업
    폰켓몬
    오블완
    찬양추천
    파이썬
    오버워치
    codeup
    6월 목표
    nodejs
    코린이
    행렬덧셈
    정보처리기사
    티스토리챌린지
    til
    신입일기
    코민이
    50문답
    연습문제
    프로그래머스
    컨텐더스
    스프링 부트
    카카오
    BOJ
    피보나치수
    스프링부트
    백준
    코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[백준] 1075번 - 나누기 (파이썬)
상단으로

티스토리툴바