전체 글274 백준1270🐨전쟁 - 땅따먹기 (보이어-무어 다수결 투표 알고리즘) 시간 제한이 긴 문제를 찾다가 보이어-무어 다수결 투표 알고리즘 (Boyer-Moore Majority Voting Algorithm) 이라는 것을 찾았다.보이어-무어 알고리즘 (Boyer-Moore String Search Algorithm)과는 다른 알고리즘입니다.보이어-무어 다수결 투표 알고리즘: 배열 내 과반수 원소 찾기 -한 번순회하면서 다수 원소 검토보이어-무어 알고리즘: 텍스트 내 패턴 검색- 건너뛰기를 통한 효율적 패턴매칭https://www.acmicpc.net/problem/1270전쟁 - 땅따먹기시간 제한10 초메모리 제한512 MB문제드디어 전쟁은 전면전이 시작되었고, 서로 땅을 따먹기 시작했다.현재 여러 지역은 한창 전쟁이 벌어지고 있는 상황인데, 어느 지역은 거의 전쟁이 마무리 .. 2024. 11. 7. 백준28932🐨Префиксы-суффиксы (접두사-접미사) 파이썬 str.startswith() Префиксы-суффиксы (접두사-접미사)시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초1024 MB23618812878.049%문제기젯은 맥스가 똑똑한 개들만 좋아한다고 생각해서 똑똑한 책들을 읽기로 결심했습니다. 그 중 한 책에서 접두사와 접미사라는 개념을 배웠습니다.정의:접두사(Prefix): 문자열의 시작 부분과 일치하는 부분 문자열접미사(Suffix): 문자열의 끝 부분과 일치하는 부분 문자열예를 들어:"ab"는 문자열 "abacaba"의 접두사 중 하나입니다."25"는 문자열 "ab125"의 접미사입니다.기젯은 주인의 노트에서 어떤 수열을 발견했고, 그 중에서 한 수의 접두사 중 하나가 다른 수의 접미사 중 하나와 일치하는 수가 두 개(같은 수일 수도 있음) 이상 존재하는지 궁금해졌.. 2024. 11. 3. aks-소수-판별-알고리즘 AKS 소수 판별 알고리즘: Python 구현과 개요AKS(Agrawal–Kayal–Saxena) 알고리즘은 모든 자연수에 대해 다항 시간에 소수 여부를 판별할 수 있는 알고리즘으로, 수학 및 컴퓨터 과학에서 중요한 진전을 이룬 알고리즘이다. 특히 이 알고리즘은 주어진 수 $n$이 소수인지 합성수인지를 결정하는 최초의 다항 시간 알고리즘으로 주목받았다.이 글에서는 AKS 알고리즘의 원리와 Python을 사용한 간단한 구현 방법을 설명한다. AKS 알고리즘은 여러 단계를 통해 최종적으로 소수 여부를 판별하며, 그 주요 단계는 다음과 같다.AKS 알고리즘의 단계 요약거듭제곱 확인: 주어진 수 $n$이 특정 값 $a$와 $b$에 대해 $n = a^b$ 형태라면, 이는 합성수임을 의미하므로 소수 판별에서 제외한.. 2024. 10. 31. 🐨세그먼트-시브 segmented-sieve 세그먼트 시브(Segmented Sieve) 알고리즘 설명0. 기본 개념: 에라토스테네스의 체 복습에라토스테네스의 체는 소수를 빠르게 찾는 유명한 알고리즘이다. 다음은 간단한 구현 예시이다:def basic_sieve(n): is_prime = [True] * (n + 1) is_prime[0] = is_prime[1] = False for i in range(2, int(n ** 0.5) + 1): if is_prime[i]: for j in range(i * i, n + 1, i): is_prime[j] = False return [i for i in range(n + 1) if is_prime[i]]# 실.. 2024. 10. 31. 레드블랙트리 1. 운영체제에서의 활용Linux 커널의 Completely Fair Scheduler (CFS)프로세스 스케줄링에 레드-블랙 트리 사용실행 대기 중인 프로세스들을 virtual runtime 기준으로 정렬O(log n) 시간 복잡도로 가장 적은 runtime을 가진 프로세스 선택 가능실제 구현 코드:struct rb_root { struct rb_node *rb_node;};struct rb_node { unsigned long __rb_parent_color; struct rb_node *rb_right; struct rb_node *rb_left;} __attribute__((aligned(sizeof(long)))); 메모리 관리가상 메모리.. 2024. 10. 30. 백준15874🐨Caesar Cipher(bytearray()) https://www.acmicpc.net/problem/15874카이사르 암호시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초64 MB134662354348.919%문제여러분들은 고대 로마의 정치인 율리우스 카이사르를 알고 있는가? 그는 정말 대단한 사람이다! 그는 로마의 독재자로도 유명하지만, 고대 암호의 대표격이라 할 수 있는 카이사르 암호(Caesar Cipher)를 만든 사람이기도 하다.카이사르 암호는 다음과 같은 방식으로 이뤄진다:알파벳으로 평문을 작성한다.해당 평문을 얼마나 밀지를 결정한다. 민다는 것은, 한 글자를 알파벳 상의 다음 글자로 바꾸는 것을 말한다. 예를 들어 네 번 밀기로 결정했다면, A는 E로, V는 Z로 바뀐다. 만약 Z를 한 번 더 민다면 A가 된다.원문A B C D E.. 2024. 10. 24. 푸른 낙동강 푸른낙동강 박다은강에 있는 다리를 건너요또르륵 비가 와요캄캄한 그림자 밑에여우 발자국이 있어요물 웅덩이가 생겨요강에는 오리가 있어요 2024. 10. 23. 백준11131🐨Balancing Weights https://www.acmicpc.net/problem/11131무게 균형 맞추기시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초256 MB599486452884.962%문제공부를 시작한 이후로, 당신의 가족들은 당신이 매우 어려운 질문들에 대한 답을 알고 있기를 기대해 왔습니다. "내 컴퓨터에 무슨 문제가 있는 거야?", "해리 왕자의 새 여자친구 이름이 뭐야?", "내 새 바지 봤어?" 이제 당신의 할아버지가 새로운 문제를 찾아냈고, 당신은 또다시 인생의 가장 근본적인 질문 중 하나에 대한 답을 찾아야 하는 압박감에 시달리고 있습니다.당신은 20미터 길이의 지렛대가 정확히 중간에서 무게 없는 지지대로 균형을 잡고 있는 상황을 받았습니다. 여러 개의 무게추가 지렛대에 적용됩니다. 당신은 어느 쪽이 .. 2024. 10. 16. 백준24445🐨너비 우선 탐색(BFS)과 문제 풀이: 알고리즘 수업 https://www.acmicpc.net/problem/244451. 너비 우선 탐색(BFS)란?BFS 개념BFS는 그래프 탐색 알고리즘 중 하나로, 특정 시작 정점으로부터 인접한 모든 정점을 우선적으로 탐색한 뒤, 다음 인접한 정점들을 차례대로 탐색하는 방식이다. BFS는 주로 큐(queue) 자료구조를 사용하며, 그래프가 트리 구조일 때는 레벨별로 노드를 탐색하는 것과 유사하다.BFS의 주요 특징은 다음과 같다:최단 경로 탐색에 유용하다. 모든 간선의 가중치가 동일할 때 최단 경로를 찾을 수 있다.큐(queue) 자료구조를 사용하여 FIFO(First In First Out) 방식으로 정점을 탐색한다.그래프의 레벨 순 탐색이 이루어지며, 이를 통해 모든 정점을 빠짐없이 방문할 수 있다.BFS의 동작.. 2024. 10. 15. 백준15813🐨너의 이름은 몇 점이니?+15351🐨인생점수 https://www.acmicpc.net/problem/15813시간 제한 1 초 메모리 제한 128 MB문제소윤이는 성필이에게 단단히 화가 났다. 성필이가 자꾸 소윤이의 이름을 놀리는 것이다!극대노한 소윤이는 이름에 대해 많은 검색을 하던 도중 "이름점수"라는 것을 발견하게 된다. 이름 점수란, 알파벳 하나하나에 점수가 있고 이름에 들어가는 모든 알파벳 점수를 합한 것이라고 한다. 예를 들어 이름이 SUNG PIL 이라면,A = 1점, B = 2점, C = 3점, …, Z = 26점인 점수판에 따라 S(19)+U(21) + N(14) + G(7) + P(16) + I(9) + L(12) = 98점이다. (즉, 점수는 알파벳 순서이다)소윤이는 SO YOON이므로 S(19) + O(15) + Y(25).. 2024. 10. 15. 백준4655🐨Hangover https://www.acmicpc.net/problem/4655Hangover (브론즈 III)문제어떻게 카드로 쌓아 만든 탑이 테이블을 얼마나 멀리까지 돌출하게 만들 수 있을까?1장의 카드로는 최대 절반(1/2) 카드 길이만큼 돌출할 수 있다.(카드는 테이블에 수직으로 세워진다고 가정한다.)2장의 카드를 사용하면:첫 번째 카드가 두 번째 카드 위로 1/2 길이만큼 돌출한다.두 번째 카드가 테이블 위로 1/3 길이만큼 돌출한다.총 돌출 길이는 ( 1/2 + 1/3 = 5/6 ) 카드 길이이다.일반적으로 n장의 카드를 사용하면 ( 1/2 + 1/3 + 1/4 + … + 1/(n + 1) ) 카드 길이만큼 돌출할 수 있다.위쪽 카드부터 두 번째 카드를 1/2, 두 번째 카드는 세 번째 카드 위로 1/3, .. 2024. 10. 14. 백준18156🐨Black and White https://www.acmicpc.net/problem/18156 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초512 MB1431139483186%문제n x n 격자가 주어지며, 각 칸은 흑색 또는 백색으로 칠해져 있습니다. 다음 조건을 모두 만족하면 격자는 ‘올바른’ 것으로 간주됩니다:모든 행에서 흑색 칸의 수와 백색 칸의 수가 같아야 합니다.모든 열에서 흑색 칸의 수와 백색 칸의 수가 같아야 합니다.어떤 행이나 열에서도 같은 색상의 칸이 3개 이상 연속으로 있어서는 안 됩니다.주어진 격자가 올바른지 판단하세요.입력첫 줄에는 정수 n이 주어집니다 (2 ≤ n ≤ 24; n은 짝수).그 다음 n개의 줄에는 각각 길이 n의 문자열이 주어지며, 'B’와 'W’로만 구성되어 있습니다. 이는 격자 칸의 .. 2024. 10. 9. Vitcoin 복권: 기대가치 수식 도출 과정(by claude) Vitcoin 복권: 기대가치 수식 도출 과정1. 기본 설정$n$개의 티켓이 있습니다.각 티켓 $i$는 가치 $w_i$와 앞면이 나올 확률 $p_i$ (0 티켓을 선택하는 순서를 $\pi(1), \pi(2), ..., \pi(n)$이라고 합니다.2. 각 단계의 기대값 도출2.1 첫 번째 티켓 $\pi(1)$의 기대값첫 번째 티켓은 항상 선택되므로:$E[\pi(1)] = w_{\pi(1)}$2.2 두 번째 티켓 $\pi(2)$의 기대값두 번째 티켓은 첫 번째 티켓의 동전이 앞면일 때만 선택됩니다:$E[\pi(2)] = w_{\pi(2)} \cdot P(\text{첫 번째 동전이 앞면})$$E[\pi(2)] = w_{\pi(2)} \cdot p_{\pi(1)}$2.3 세 번째 티켓 $\pi(3)$의 기대값세.. 2024. 9. 9. 백준13706🐨제곱근 2초 512MB문제정수 N이 주어졌을 때, N의 제곱근을 구하는 프로그램을 작성하시오.입력첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.출력첫째 줄에 정수 N의 제곱근을 출력한다.예제 입력 136예제 출력 16예제 입력 281예제 출력 29예제 입력 3226576예제 출력 3476이 문제를 아래처럼 풀어보면 오류가 발생한다:print(int(int(open(0).read())**0.5))런타임 에러 (OverflowError)최대 800자리이기 때문에 발생하는 오류이다.그래서 math 모듈을 사용해 보자. integer sqrt 함수가 있다.import mathprint(int(math.isqrt(int(open(0).read()))))40.. 2024. 9. 4. 백준8680🐨Drzewko Drzewko (이진 트리)시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB100483348348.529%문제Mamy dane drzewko binarne o wysokości h (jak na rysunku):높이가 h인 이진 트리가 주어집니다 (그림과 같이):Każda krawędź może być zamknięta bądź otwarta. Początkowo otwarte są wszystkie lewe krawędzie (zaznaczone linią przerywaną). Adrianek zrzuca po kolei n piłeczek, poczynając od wierzchołka startowego, który jest korzeniem drzewa. Każda piłeczka .. 2024. 9. 1. 백준31849🐨편세권.오답 아이디어.feat시간초과. Room and Convenience Store Distance Visualization (Manhattan Distance) Step Auto Reset 2024. 8. 27. "Numbers On a Tree" 다음은 문제 "Numbers On a Tree"의 한국어 번역입니다:시간 제한: 1초메모리 제한: 256 MB제출: 5232정답: 2041맞힌 사람: 1743정답 비율: 39.189%문제Lovisa는 KTH에서 Stefan Nilsson 교수의 완전 이진 트리에 대한 강의를 듣고 있습니다. "완전 이진 트리에는 루트라고 불리는 특별한 노드가 있으며, 보통 맨 위에 그려집니다. 최하위 층의 노드들(잎이라고 부릅니다)을 제외한 모든 노드는 두 개의 자식 노드를 가집니다." Lovisa는 이미 이 모든 것을 알고 있어서 약간 지루해합니다. 이를 눈치챈 Stefan은 Lovisa에게 새로운 도전 과제를 제시합니다.먼저, 우리는 완전 이진 트리의 노드에 다음과 같이 번호를 매깁니다. 오른쪽 맨 아래 잎에서 시작하.. 2024. 8. 25. 백준3554🐨Enigmatic Device https://www.acmicpc.net/problem/3554 위 백준 문제에 대한 번역입니다.수수께끼의 장치시간 제한메모리 제한제출정답맞힌 사람정답 비율3 초256 MB59129622951.810%문제드디어 일어났습니다! 첫 접촉이 이루어졌습니다! 외계인들이 2010년에 지구를 방문할 예정입니다! 그들은 현재 지구의 기술로는 만들 수 없는 수수께끼 같은 장치를 가져올 것을 약속했습니다. 세계의 대부분의 과학자들이 그렇게 생각합니다! 모든 신문사들은 이미 이에 대한 주요 기사를 발행했습니다.이 장치는 정수 수열 \({a_i}\)를 초기 입력으로 받습니다. 그 후, 다음 두 가지 연산을 수행할 수 있습니다:구간 [l; r]을 선택하고 l ≤ i ≤ r인 모든 \(a_i\)에 대해 \(a_i \lefta.. 2024. 8. 25. 이전 1 2 3 4 5 6 ··· 16 다음