문재해석
처음 보는순간 수열이라는 것을 쉽게 발견 할 수 있다.
솔직히 백준 수학 알고리즘 수학 1 파트를 풀고 있지만 규칙은 어렵지않게 발견했지만
구현이 쉽지가 않다.
이번에도 조금 힘들었다.
조건1) room은 초기방 숫자가+6씩 수열로 증가 할때마다 room +1 씩 해주면 된다.
코드를 풀어보자면
처음 숫자가 1번 일때는 그대로 출력 // #1번째 방
초기값을 7로 잡아서 구하고자하는 값이, 예를들어 6일때 6 <= 7 이므로 room+1 한 뒤 출력 // #2번째방
그 뒤부터는 firstnum+6씩 while문을 돌릴때 마다 더하는 것이다. 그리고 room+1
하지만 코드가 조금 길어 짧게 하는 방법이 없을까 고민했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
n = int(input())
room = 1
firstnum = 7
plus = 6
while True:
#1번째 방인 경우
if n == 1:
break
#2번째 방인 경우
if n <= firstnum:
room += 1
break
#3번째 이상부터 7에 +6씩 계속 증가해준다.
else:
plus += 6
firstnum += plus
room += 1
print(room)
|
어떻게 하다보니까 짧아졌는데,
초기값을 1로 하고 풀어봤다.
#1 n = 1 >>> break 걸려서 room 값 1 출력
#2 n = 2 >>> if문이 한번 돌아간다. room + 1 후 출력
생각보다 쉽게 나와서 신기했다.
1
2
3
4
5
6
7
8
9
10
11
12
|
room = 1
plue = 6
num = 1
n = int(input())
while True:
if n > num:
num += plue
plue += 6
room += 1
continue
break
print(room)
|
반응형
'BOJ' 카테고리의 다른 글
[Node.js] 백준 #10828 스택 (실패 : 시간초과) (0) | 2021.07.20 |
---|---|
[JavaScript] 스택 구현 (0) | 2021.06.02 |
Baekjoon #2839번 설탕배달 [Python] (0) | 2020.10.06 |
baekjoon #1712번 손익분기점 [Python] (0) | 2020.10.06 |
baekjoon #1316번 그룹단어체커 [Python] (0) | 2020.10.06 |