python
-
[프로그래머스] 더 맵게 - python코딩테스트 2024. 12. 31. 01:05
https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krimport heapqdef solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville: if scoville[0] >= K: return answer if len(scoville)
-
[BAEKJOON] 쉬운 계단 수 - python코딩테스트 2024. 6. 15. 15:41
쉬운 계단 수알고리즘 - dynamic programmingn = int(input())dp = [[0] * 10 for _ in range(n+1)]for i in range(1,10): dp[1][i] = 1 #n=1일때는 1가지for i in range(2,n+1): for j in range(10): if j == 0: #마지막이 0일때 dp[i][j] = dp[i-1][1] elif j == 9: #마지막이 9일때 dp[i][j] = dp[i-1][8] else: #마지막이 1~8일때 dp[i][j] = dp[i-1][j-1]+dp[i-1][j+1]print(sum(dp[n])%1000000000)N = int(input())arr = [1]*1..
-
[BAEKJOON] 1, 2, 3 더하기 - python코딩테스트 2024. 6. 14. 00:23
1, 2, 3 더하기알고리즘 - dynamic programming과정:n=1 : 1 -> 1n=2 : 1+1, 2 -> 2n=3 : 1+1+1, 1+2, 2+1, 3 -> 4n=4 : 1+1+1+1,1+1+2,1+2+1,1+3, 2+1+1, 2+2, 3+1 -> 7cnt = int(input())arr = [0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 0] #n은 양수이며 11보다 작음for a in range(0,cnt): n = int(input()) for i in range(4,n+1): arr[i] = arr[i-1] + arr[i-2] + arr[i-3] print(arr[n])
-
[BAEKJOON] 2×n 타일링 - python코딩테스트 2024. 6. 10. 23:14
2×n 타일링알고리즘 - dynamic programming 과정:그림을 그려가며 규칙을 찾아보았다.아래 그림과 같이 2xn 직사각형을 타일로 채울 수 있다.arr[2]=2arr[3]=3arr[4]=5arr[5]=8 ...arr[4]는 'arr[3]에 2x1 세로타일을 추가한 것 + arr[2]에 2개의 1x2 가로타일을 추가한 것' 이 된다.문제의 규칙은 arr[n] = arr[n-1] + arr[n-2] 이므로 이를 dp로 작성해보았다.n = int(input())arr = [1]*(n+1) #array 1로 초기화for i in range(2,n+1): arr[i] = arr[i-1] + arr[i-2]print(arr[n]%10007)
-
[BAEKJOON] 1로 만들기 - python코딩테스트 2024. 6. 7. 01:22
1로 만들기알고리즘 - dynamic programming 과정:처음에는 3으로 나눠질 수 있는 숫자는 3으로 나누기 -> 2로 나눠질 수 있는 숫자는 2로 나누기 -> 둘다 안되면 -1 로 풀어보려했지만 힌트를 보고 아닌것을 알게되었다.위와 같이 풀면 10 -> 5 -> 4 -> 2 -> 1 4번으로 더 연산이 많이 필요해진다.힌트를 참고하면X=10 : 10 -> 9 -> 3 -> 1X=9 : 9 -> 3 -> 1X=3 : 3 -> 1형태가 된다.n : 입력받은 정수 Narr[n] : 연산하는 횟수arr[i-1] +1 : 1을 뺀다 연산arr[i//3] +1 : 3으로 나누는 연산arr[i//2] +1 : 2로 나누는 연산'1을 뺀다 연산', '3으로 나누는 연산', '2로 나누는 연산' 을 적절히 사..
-
[PYTHON] strip / lstrip / rstripPYTHON 2023. 11. 30. 00:57
strip() : 문자열에서 특정 문자 제거 strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다. lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다. rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다. 인자를 전달하지 않을 수도 있으며, 인자를 전달하지 않으면 String에서 공백을 제거합니다. #strip() n_str1 = "0010" n_str2 = "854020" answer1 = n_str1.strip("0") answer2 = n_str2.strip("0") print(answer1) print(answer2) 1 85402 #lstrip() n_str1 = "0010" n_..
-
[PYTHON] 파일 쓰기, 읽기PYTHON 2023. 10. 19. 13:27
hello_script = """ hello \thi \thihi hello world """ #파일 쓰기 hello_file = open("hello.txt", "w") shell_scrip = "\n".join(line.lstrip(' ') for line in shell_scrip.splitlines()) #왼쪽 공백 제거 hello_file.write(hello_script) hello_file.close() #파일 읽기 hello_file = open("hello.txt", "r") hello_file.read().strip() hello_file.close()