Adventure Time - Jake 'Back-end/백준(python)' 카테고리의 글 목록 (5 Page)
본문 바로가기

Back-end/백준(python)51

[백준/python] 2869 달팽이는올라가고싶다: https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B = V가 될 때 ?=며칠이 걸리는지 이므로 반복문을 사용해주면 되겠다 싶었는데 시간 제한이 있어 반복문을 사용하지 못하는 제한된 문제였다. A,B,V=map(int, input().split()) if (V-B)%(A-B)==0: print(int((V-B)/(A-B))) else: print(int((V-B)/(A-B))+1) #하루에 갈 수 잇는 거리 = A-B #밤까지 안 가고 낮동안 정.. 2023. 10. 25.
★[백준/python] 1193 분수찾기: 규칙 찾아.. https://www.acmicpc.net/problem/1193 1193번: 분수찾기첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.www.acmicpc.net 1) 1/1 ->앞에거는 1 뒤에거는 1 2,3) 1/2, 2/1 -> 앞에거는 1,2 뒤에거는 2,1 4,5,6) 3/1, 2/2, 1/3 -> 앞에거는 3,2,1 뒤에거는 1,2,3 7,8,9,10) 1/4, 2/3, 3/2, 4/1 ->앞에거는 1,2,3,4 뒤에거는 4,3,2,1 11,12,13,14,15) 5/1, 4/2, 3/3, 2/4, 1/5 ->앞에거는 5,4,3,2,1 뒤에거는 1,2,3,4,5 16,17,18,19,20,21) 1/6, 2/5, 3/4, 4/3, 5/2, 6/1 ->앞에거는 1,2,3,4,5,6 .. 2023. 10. 25.
[백준/python] 2292 벌집: 먼저 규칙을 찾고 어떻게 풀어낼 지 생각하는 문제 https://www.acmicpc.net/problem/2292 2292번: 벌집위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌www.acmicpc.net 1개) 1 ->1개 2개) 2,3,4,5,6,7 ->6개 3개) 8,9,10,..19 ->12개 4개) 20,21,.. 37 ->18개 5개) 38,39,.. 61 ->24개 6) ... 라는 규칙을 찾았다. N=int(input()) cnt=1 while(N>1): N-=6*cnt cnt+=1 print(cnt) 성공! n = int(input()) nums_pileup = 1 # 벌집의 개수, 1개부터 시.. 2023. 10. 25.
[백준/python] 11005 진법 변환 2: 문자열 결합에서의 +연산 N, B= map(int, input().split()) num='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' #Z:35 result='' #문자열로 저장할거임 while (N>=1): result+=num[N%B] N=N//B print(result[::-1]) #문자열을 역순으로 출력 나머지 (%) 넣는데, N=1일때 마지막으로 나머지 계산해서 넣고 끝. 출력할땐 역순으로 출력 이라는 아이디어를 가지고 코드를 작성했다. N=0이 되면 더이상 나머지를 집어넣지않음! 따라서 위와 같이 while(N>=1)이 아니라 while(N)이라는 조건문으로 설정해도 됨. 2023. 10. 25.
[백준/python] 2745 진법변환: B진법->10진법 변환하기/ 문자열, reversed객체, join함수 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net N, B= input().split() B=int(B) num='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' #Z:35 result=0 j=len(N)-1 for i in range(0,len(N)): result+=(B**j)* num.index(N[i]) j-=1 print(result) B진법 -> 10진법: 제곱승씩 곱해서. 110 -> B의 1승*1 + B의 2승*1.. 2023. 10. 25.
[백준/python] 2903 중앙 이동 알고리즘: 수학적인 사고를 해보장.. n=int(input()) print((2**n+1)**2) n=0이면 2*2 n=1이면 3*3 n=2이면 5*5 n=3이면 9*9 n=4이면 17*17 ... 이런식으로 몇개의 결과를 나열해놓은 다음 규칙을 찾으려고 했다. 그러다보니 3->5는 2가 커지고, 5->9는 4가 커지고, 9->17은 8이 커지는 걸 볼 수가 있었다. 그래서 2*n ... 와 같은 형태이거나 2^n...과 같은 형태일거라고 짐작했고 2*n...은 안되는 것을 확인한 후에 (2^n +1 )가 되는 것을 확인할 수 있었다. 출력은 모든 점의 개수를 출력해야하기 때문에 가로, 세로 각 각의 점 개수를 곱해줘야 하므로 두번 곱한 (2^n+1)^2를 출력으로 해주었다. 2023. 10. 25.