본문 바로가기
프로그래밍/알고리즘

[백준알고리즘]백준 1065 파이썬 편김에 끝까지::우주를놀라게하자

by 우주를놀라게하자 2019. 9. 16.
반응형
SMALL


[개요]


평소에 알고리즘에 자신이 없어서 '프로그래머스' 사이트를 통해서 공부중이였는데...첫문제부터 아! 내 실력이 아아아아~주 형편없다는것을 깨달아서 편김에 끝까지 프로젝트를 진행하려고한다.

 

 이 프로젝트는 백준알고리즘에서 단계별로 풀어보기를 기반으로 차근차근 풀어볼 예정이다. 추가적으로 나는 언어설정을 pypy3로 했는데, pypy3를 선택한 이유는 기존의 python언어보다 훨씬 가볍고 빠르기 때문에 선택했다. 뭐 python과 문법적으로나 기타등등 차이는 없다.


해답보다는 내가 어떻게 틀렸고 왜 틀렸는지에 대한 전체적인 시행착오를 위주로 적어갈 것이다... 마지막으로 나도 하다가 안되는 부분은 넘어가고 다음문제를 풀고 이런식으로 할 예정이기 때문에 전체적인 문제를 다 푸는것이 시간이 좀 걸릴지도 모른다.. 서두가 길었다 여튼 풀어보자




[문제]

시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초128 MB35602166571435447.395%

문제

어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

입력

첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

출력

첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

예제 입력 1 

110

예제 출력 1 

99

예제 입력 2 

1

예제 출력 2 

1

예제 입력 3 

210

예제 출력 3 

105

예제 입력 4 

1000

예제 출력 4 

144

[시행착오]

이 문제는 진짜 문제자체가 이해가 안되드라...등차수열이 뭔지는 알겠는데 마지막에 아웃풋으로 나오는 값이 뭔지 이해가 안되서...일단 다른사람의 코드를 긁어다가 맞췄다...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def Han(n):
        cnt = 0
        if (n < 100):
                return n
        else:
                for i in range(100,(n+1)):
                        hund = (i//100)
                        ten = ((i%100)//10)
                        one = ((i%100)%10)
 
                        if ((hund - ten) == (ten - one)):
                                cnt += 1
                return (99+cnt)
 
inp = int(input())
res = Han(inp)
print(res)
cs

대충 내 코드는 아니라서...뭐...일단 이해하고 넘어가려고 코드는 따로 저장해두었다...차후에 다시 시간을 내서 내가 직접 풀어봐야겠다....


[해답]


나는 못풀었음...ㅠㅠ 위의 코드가 정답임....

반응형
LIST