분류 전체보기
-
[Python] BOJ 9935 문자열 폭발코딩테스트/백준 2025. 2. 20. 16:38
요구사항 시간 제한: 2초 메모리 제한: 128MB폭발 안할 거 처럼 보여도 (예제 입력1) 폭발하고 왼쪽 문자열과 오른쪽 문자열과 합쳤을 때, 폭발 문자열이라면 폭발한다.남아 있는 문자가 없는 경우 FRULA를 출력한다. 설계 1 문자열에 폭발 문자열을 반복적으로 찾는다.남아 있는 문자가 없는 경우 "FRULA"를 출력한다.import sysinput = lambda: sys.stdin.readline().rstrip()sentence = input() # 입력 받은 문자열bomb = input() # 폭발 문자열while bomb in sentence: sentence = sentence.replace(bomb, "")if not sentence: print("FRULA") e..
-
[Python] BOJ 1406 에디터코딩테스트/백준 2025. 2. 20. 16:09
요구사항시간 제한: 0.3초 메모리 제한: 512MB명령어가 수행되기 전에 커서는 문장의 맨 뒤에 위치모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 구하라. 설계 스택으로 풀자. 요구사항 3번을 보면 커서를 기준으로 왼쪽 오른쪽으로 나뉜다. 명령어가 실행됨에 따라 왼/오 스택에 추가하고 제거한다. 구현 import sysinput = lambda: sys.stdin.readline().rstrip()left_stack = list(input()) # 입력 문자command_line = int(input()) # 명령어 줄 개수rigth_stack = []for _ in range(command_line): command = input() if command[0] == "P": ..
-
[Python] BOJ 11728 배열 합치기코딩테스트/백준 2025. 2. 6. 16:46
https://www.acmicpc.net/problem/11728요구사항 시간 제한: 1.5초 메모리 제한: 256MB 두 배열을 합쳐 정렬할 것각 배열의 크기는 1,000,000 O(N log N )일 떄 약, 20,000,000 번 파이썬에서 정렬 sort() 의 시간 복잡도 O(N log N) 이 걸림. 따라서 만족설계 1 (답안은 설계 3 참고)set 자료구조를 사용 a | b 를 사용해 정답을 구한다.import sysinput =lambda: sys.stdin.readline().rstrip()size = map(int, input().split())a = set(map(int, input().split()))b = set(map(int, input().split()))result = a |..
-
[Python] BOJ 1269 대칭차집합코딩테스트/백준 2025. 2. 6. 15:29
https://www.acmicpc.net/problem/1269요구사항시간 제한: 2초 메모리 제한: 256MB결론: 각 집합의 원소의 개수 200,000. 약 2억까지 괜찮으니 O(N**2)아래로 가자. 설계 1 (최종 답안은 설계 3을 참고해주세요.)a = [1, 2, 4]b = [2, 3, 4, 5, 6]a를 순회하며 b가 있는 지 체크 한다. count_a += 1b를 순회하며 a가 있는 지 체크한다. count_b += 1print(count_a + count_b) import sysinput = lambda: sys.stdin.readline().rstrip()a_size, b_size = map(int, input().split())a = list(map(int, input().split..
-
[Python] leetcode 367 Valid Perfect Square코딩테스트/LeetCode 2025. 2. 3. 20:21
https://leetcode.com/problems/valid-perfect-square/description/요구사항sqrt() method를 사용하지 말 것거듭제곱의 제곱근인지 자연수인지 판별하라. 설계4의 약수 1249의 약수 13916의 약수 1 2 4 8 16이처럼 감히 추측하건데 자연수의 거듭제곱의 약수는 무조건 홀수이고 그외는 짝수이다. 따라서 약수의 개수가 홀수이면 True를 반환구현 (leetcode 버전은 한 번 더 내려주세요.)import sysinput = lambda: sys.stdin.readline().rstrip()def is_square(num): print(num) num_list = [] for i in range(1, num+1): if ..
-
[Python] BOJ 8595 히든넘버코딩테스트/백준 2025. 2. 3. 19:22
https://www.acmicpc.net/problem/8595요구사항시간 제한 1초공간 제한 256MB히든 넘버의 합을 구할 것.문자는 알파벳 대소문자와 숫자(0-9)로 이루어져 있음. 두 히든 넘버 사이에는 글자가 적어도 한 개 있다.연속된 숫자는 한 히든 넘버이다.결론: 단어의 길이가 5,000,000이므로 O(N**2) 안 쪽으로 구현해야 한다. 설계ord() 메서드를 사용한다. 알파벳 대소문자는 65-122 사이 존재 print(ord('a')) 를 통해 확인 가능그 이유는 문자열을 for문으로 순회하면서 확인65-122 범위 밖이라면 num_list에 넣는다.그 외 범위라면 num_list 에 저장된 하나 하나의 문자를 합치고 기존과 더한다.예를 들어 num_list = ['1', '2']..
-
[Python] BOJ 12789 도키도키 간식드리미카테고리 없음 2025. 2. 2. 15:01
https://www.acmicpc.net/problem/12789요구사항시간 제한 1초메모리 제한 128MB 결론: 학생 수가 1,000이하 이므로 크게 신경 쓰지 않아도 됨설계 1:current = 1 기다리는 번호 초기화예제 입력 1 의 [5 4 1 3 2] 를 기다리는 번호라고 하자.for person in 기다리는 번호person == current일 경우 current += 1그 외는 stack 에 넣어주자.스택이 있을 경우 while문을 돌려주자. # 입력 받기n = int(input()waiting_line = list(map(int, input().split()))stack = [] # 보조 스택current = 1 # 기다리는 번호for person in waiting_line:..
-
[Python] BOJ 28278 스택 2코딩테스트/백준 2025. 2. 2. 14:13
https://www.acmicpc.net/problem/28278요구사항시간 제한 2초메모리 제한 1024MB결론: 넉넉하게 편하게 풀자.설계1번 명령어 부터 5번 명령어 까지 if-else 문으로 분기해서 푼다.실수로 부터 재설계 1처음엔 cmd, num = map(int, input().split())for문안에서 위와 같이 입력을 받았다. 하지만 위의 경우 1번 명령만(정수 X를 스택에 넣는다.) 처리할 수 있기 때문에 탈락.실수로 부터 재설계 2문자열로 입력을 받는다.cmd = input()이 경우 cmd[0] 이 첫 번째, cmd[1] = 공백, cmd[2] = 스택에 들어갈 정수실수로 부터 재설계 3위의 경우 스택에 넣을 정수가 일의 자리인 경우만 가능하다. 따라서 cmd[2:] 로 수정.구..