분류 전체보기
-
[Python] BOJ 4949 : 균형잡힌 세상코딩테스트/백준 2024. 10. 22. 08:31
https://www.acmicpc.net/problem/4949생각 정리스택을 사용하고, ')' or ']' 가 들어올 때 스택의 맨 위의 문자가 각각의 짝과 맞는지 보자.그런 다음 만약 stack이 비어있다면..헷갈렸던 부분문자열의 마지막에 온점이 찍힌다. 문자열의 종료 조건인데 어떻게 가능하지쉽게 말해 문자열이 있다면 온점을 신경 쓰지 않아도 된다. 그냥 없다고 생각하자.다만, 문자 '.' 만 입력으로 들어왔을 때, 반복문을 종료하면 된다. 요구사항시간제한 : 1초 문자열의 길이가 100보다 작거나 같다. 메모리 제한 128MB 넉넉문자열이 주어졌을 때 균형 잡힌 문자열인지 아닌지 판단문자열의 종료 조건은 마지막에 온점 하나가 들어온다. 설계while True일 때 동안 사용자로 부터 입력을 받는다..
-
[Python] BOJ 10845 큐코딩테스트/백준 2024. 10. 21. 07:52
https://www.acmicpc.net/problem/10845생각해보기더보기무조건 이상하게 구현 시도하려고 하지 말고, 파이썬에서 제공하는 모듈 deque 를 사용해서 리스트에 값을 넣고 빼자. 요구사항시간제한 0.5초 python 에서 제공하는 모듈을 사용하자. O(n) 정도일 때 만..메모리제한 256MB 하나의 리스트를 담기엔 충분하다.명령어가 입력으로 주어 졌을 때, 명령어 규칙에 따라 결과값을 출력하자.설계모듈 deque 를 불러온다. 나도 예전엔 "이런 거까지 외워야 되나 싶었다" 그러면 이렇게 해보쇼 !! 문제를 모듈을 사용하지 않고 문제를 풀어보고 !! 모듈을 한번 써보면 너무 편하고 이렇게 하면 이렇게 간단한 걸... 하고 까먹기 싫어서 외워졌다. 입력으로 받은 N번 동안 for문을..
-
[Python] BOJ 17298 : 오큰수코딩테스트/백준 2024. 10. 19. 09:42
https://www.acmicpc.net/problem/17298생각 중스택이 비어 있을 때, 인덱스를 넣어줘 전 값을 저장하자.스택이 비어 있지 않을 때, 저장된 인덱스 값의 NGE[index] 와 다음 값인 NGE[i]를 비교하자.만약 NGE[i] 가 더 크다면 stack을 pop하고 result[index] 에 NGE[i] 값을 넣어주자. 요구사항시간 제한 1초 N 보자마자 아 2중 for문은 안되겠구나. 메모리 제한 512MB 특정 원소 보다 오른쪽에 있으면서 가장 큰 수 중에 가장 왼쪽에 있는 수를 구하는 프로그램을 만들 것. 설계 수열의 크기 N 을 입력 받는다. 사용자로 부터 수열을 입력 받는다.결과를 저장할 리스트를 초기화 한다. [-1] * N stack = [] : index 를 ..
-
[크래프톤 정글] 5주차 회고 (달성도 61%)회고 2024. 10. 17. 08:22
5주차를 끝내며오늘 C언어 RB-Tree 주차인 5주차가 끝나는 날이다. 이번 주는 선택에 있어 아주 과감한 주차였다. 처음 한 주를 설계할 때부터 먼저 챙길 것과 챙김의 기한을 걸어두고 그 기한이 지날 시 과감하게 버렸고, 다음 해야할 일을 했다. 4주차 때는 이런 방식에 확신이 없었고 5주차 때는 어느 정도 확신이 든다. 6주차 때도 한 주 더 실험해보고 싶다. 그 이유는 이러한 방식이 오히려 기간안의 기간이니 오늘이 아니면 못해 라는 마인드가 되는 거 같다. 그래서 집중의 농도가 조금 상승했다는 생각을 했다. 그리고 지난 주차 때 일관성이 없었다고 생각되는 부분에 대해서 일관성을 지키려 노력을 했다. 1시간 알고리즘 문제를 풀고 복습하고 그 외 시간에 스터디 공부를 하고 마지막엔 Java 기초 문법..
-
[Python] BOJ 1158 : 요세푸스 문제코딩테스트/백준 2024. 10. 17. 08:05
요구사항 시간 제한 2초, N의 크기도 작아 넉넉하다. 메모리 제한 또한 마찬가지N, K 가 주어질 때 요세푸스 순열을 구하는 프로그램을 출력하라. 설계[1, 2, 3, 4, 5, 6, 7] 사람이 앉아 있다고 했을 때,1, 2번 사람을 7번 뒤로 넣는다. [3, 4, 5, 6, 7, 1, 2] []3번사람을 뺄 수 있다. [4, 5, 6, 7, 1, 2] [3]4번, 5번 사람을 2번 사람 뒤에 넣는다. [6, 7, 1, 2, 4, 5] [3]6번 사람을 뺄 수 있다. [7, 1, 2, 4, 5] [3, 6]위와 같이 Queue의 성질을 이용해서 문제를 풀 수 있다. 추가로 순열을 출력할 때, replace함수와 join함수 중 시간 복잡도가 낮은 걸 택하고 싶어 고민했었다. join 함수는..
-
[Python] BOJ 5397 : 키로거코딩테스트/백준 2024. 10. 16. 08:25
https://www.acmicpc.net/problem/5397 https://studyiwthme.tistory.com/169 요구사항시간제한 1초 L이 1,000,000 이므로 테스트 케이스가 몇 개라고 말이 없어서.. 이중 for문을 최대한 피하려다가 그냥 이중 for문을 사용하기로 생각했다.메모리제한 256MB 역시 걱정할 정도는 아니다.알파벳, 숫자, 백스페이스, 화살표가 주어졌을 때, 최종 문자열을 출력해라.설계testCase 를 입력 받는다.. 사용자로 부터 입력을 받는다.커서 기준 왼쪽과 오른쪽을 나누기 위해서 2개의 리스트를 초기화한다. 입력 받는 문자열에 대해 for문을 돌린다. 각 케이스 별로 if문을 사용해서 나눈다. "커서 기준 왼쪽이 뭘 있어야 커서를 움직을 수 있잖아요. 그래..
-
[Python] BOJ 6198 : 옥상 정원 꾸미기코딩테스트/백준 2024. 10. 15. 09:04
https://www.acmicpc.net/problem/6198요구사항시간 제한 1초빌당의 개수가 80,000개 이중 for문으로 확인해버리면 시간초과 가능성이 높다. 메모리제한 128MB 관리인들이 옥상 정원을 확인할 수 있는 총 빌딩의 수를 구해라.설계이중 for문으로 구현하면 편하겠다. 더 이상 생각이 안난다. 갇혀버렸다. 위와 같은 방식을 이해하거나 실제로 건물을 stack 에 넣어보면서 가시적으로 비교하면 좋다.구현import sysinput = lambda: sys.stdin.readline().rstrip()# 건물의 개수 입력N = int(input())# 각 건물의 높이를 입력받음building_heights = [int(input()) for _ in range(N)]stack = [..
-
[Python] BOJ 1406 : 에디터코딩테스트/백준 2024. 10. 14. 09:03
요구사항시간 제한 0.3초 1초에 약 1억번 연산을 하니 O(N)일 때, 3천만 정도 연산 현재 O(logN)이하 복잡도를 가지는 알고리즘을 사용할 것. 메모리 제한은 5121MB 로 걱정할 프로그램을 만들 때, 크게 고려하지 않아도 된다. 모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 구하는 프로그램설계 1명령어가 수행되기 전에 커서는 문장의 맨 뒤에 위치커서의 위치를 인덱스처럼 사용해서 삽입 삭제를 하자. L 일 때cursor > 0 보다 크다면, (계속 L L L L 해서 커서가 더이상 맨앞으로 갈 수 없는 경우를 제외함)cursor -= 1D 일 때cursor cursor += 1B 일 때sentence.pop(cursor - 1)cursor -= 1 커서의 위치도 옮겨야함P ..