728x90 반응형 Python169 2022.02.24 [백준] (python 파이썬) 랜선 자르기 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 풀이 이 문제는 하나하나 모두 확인하면서 정답을 찾으면 시간초과를 피할 수 없다. 그래서 이분탐색을 이용해서 탐색시간을 줄였다. 우선 시작점은 가장 짧게 자를 길이인 1로 설정하고, end는 전체 랜선의 합을 n개로 나눈 값으로 설정했다. 이렇게 설정한 이유는 문제에서 남은 랜선은 다시 사용할 수 없다고 했기 때문에 전체를 하나로 만들고 n개로 나눈 값보다 항상 짧을 .. 2022. 2. 25. 2022.02.24 [백준] (python 파이썬) 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 이 문제는 입력된 값에서 0이 나오면 제일 최근에 입력된 값을 지우는 문제이기 때문에 stack을 이용했다. 0이 입력될 경우, 지울 수 있는 수가 있다고 보장되었기 때문에, stack이 비어있을 경우는 고려하지 않았다. 1 2 3 4 5 6 7 8 9 stack=[] for i in range(int(input())): num=int(input()) if .. 2022. 2. 25. 2022.02.24 [백준] (python 파이썬) 균형잡힌 세상 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 풀이 이 문제는 스택을 사용해서 해결했다. 입력받은 문자열을 배열에 넣고 만약 배열의 첫번째 인덱스 값이 '.'이면 break를 걸어 while문을 빠져나오게 했다. 그리고 check를 True로 선언하고 만약 괄호의 짝이 맞지 않으면 ( ')'괄호가 나왔을 때, stack이 비어있거나 '[' 괄호가 나오면 짝이 맞지 않음) False로 바꾼뒤 break를 걸어 해당 문자열을 확인하.. 2022. 2. 24. 2022.02.24 [백준] (python 파이썬) Hashing https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 풀이 우선 딕셔너리를 이용해 각 알파벳에 고유 번호를 지정해 주었다. 참고로 아스키 코드에서 문자로 변환은 chr(), 문자에서 아스키 코드로는 ord()를 사용하면 된다. 그리고 s의 길이만큼 for문을 돌려 각 (알파벳의 고유값*31**(알파벳의 인덱스))%m을 해주었다. 총 해쉬합인 sum을 그대로 출력했을 때, 50%성공이 결과로 나왔다. 아마 출력할 수 있는 범위를 벗어 난듯하다. 그래.. 2022. 2. 24. 이전 1 ··· 19 20 21 22 23 24 25 ··· 43 다음 728x90 반응형