일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 데이터프로그래밍
- 토이프로젝트
- SQL 문법
- 문제풀이
- 백준
- SQL 정리
- SQL
- 해킹실습
- 문법
- 데이터베이스
- 엘라스틱서치
- 기초
- 위클리챌린지
- 알고리즘
- 스파크
- 프로그래밍
- MySQL
- 오라클
- 스프링
- c언어
- 자바
- 리눅스마스터 2급 2차
- 프로그래머스
- 빅데이터
- 파이썬
- 코딩테스트
- 스프링부트
- 모의해킹
- 필기
- 이클립스
- Today
- Total
개발일기
백준 1598번 파이썬 풀이 : 꼬리를 무는 숫자 나열 본문
문제 링크 : https://www.acmicpc.net/problem/1598
1598번: 꼬리를 무는 숫자 나열
첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 숫자는 10,000,000 이하이다.
www.acmicpc.net
문제
동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그 녀석은 원주 부근을 돌아다니다가 코레스코 콘도에서 아주 재밌는 놀이를 발견했다. 그 놀이의 이름은 바로 “꼬리를 무는 숫자 나열”. 이제부터 원숭이가 그토록 좋아하던 그 놀이를 파헤쳐보자.
놀이의 방법은 간단하다. 일단 4줄짜리 표에 왼쪽부터 숫자를 아래로 1부터 순서대로 적어나간다. 다음에 그 예가 잘 나타나있다.
이제 원숭이는 두 개의 자연수를 아무거나 생각한다. 그리고 숫자판에서 두 개의 자연수 사이의 직각거리를 구하면 된다. 여기서 직각거리는 동서방향거리와 남북방향거리의 합을 뜻한다.
예를 들어 저 숫자판에서 11과 33을 생각했다고 하자. 그렇다면 11과 33사이의 직각거리는 8이 된다.(동서방향거리 : 6, 남북방향거리 : 2) 다음 그림에 잘 나타나있다.
하지만 원숭이는 지금 혼란스럽다. 동물원에서 탈출한지 얼마 되지 않아서 계산을 할 수 없는 경지에 이르렀다. 여러분이 불쌍한 원숭이를 좀 도와줘야겠다. 원숭이가 생각한 두 자연수 사이의 직각거리를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 숫자는 10,000,000 이하이다.
출력
첫째 줄에 원숭이가 생각한 두 개의 자연수 사이의 직각거리를 출력한다.
문제 풀이
# 단순 계산 문제다.
# 예제를 예로 들면 11은 4로 나누면 몫 2와 나머지 3으로 이루어져 있으며
# 33은 몫 8과 나머지 1로 이루어져 있다. 이때 출력값은 절댓값 몫 - 몫 + 나머지 - 나머지 이다.
* 요점
12와 같은 4로 나누어 떨어지는 값들은 몫 이 3이지만 몫 2와 나머지 4로 변환해주어야 정확한 직각거리가 계산된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
X, Y = map(int, input().split())
if X % 4 == 0:
X_x = X // 4 - 1
X_y = 4
else:
X_x = X // 4
X_y = X % 4
if Y % 4 == 0:
Y_x = Y // 4 - 1
Y_y = 4
else:
Y_x = Y // 4
Y_y = Y % 4
print(abs(X_x - Y_x) + abs(X_y - Y_y))
|
cs |
요점과 같이 4로 나누어 떨어지는 수가 입력되었을 시 몫 - 1, 나머지는 4로 고정해 준 후 계산해준다.
전체 코드 링크 : https://github.com/Hmgi/Prepare-CodingTest/blob/master/Baekjoon/1598.py
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
백준 1837번 파이썬 풀이 : 암호제작 (0) | 2021.08.06 |
---|---|
백준 1703번 파이썬 풀이 : 생장점 (0) | 2021.08.05 |
백준 1547번 파이썬 풀이 : 공 (0) | 2021.08.05 |
백준 1018번 파이썬 풀이 : 체스판 다시 칠하기 (4) | 2021.08.04 |
백준 1009번 파이썬 풀이 : 분산처리 (3) | 2021.08.02 |