본문 바로가기

알고리즘/백준 알고리즘21

[Baekjoon] 백준 알고리즘: 1543 - 문서검색 문제 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 내가 생각했던 풀이과정 1. 문자열과 검색하고 싶은 단어를 각각 입력을 받는다 2. count와 index를 0으로 초기화한다. 3. 문자열과 검색하고 싶은 단어가 같은지 확인하려면 단어를 통째로 잘랐을 때 길이가 넘어가면 안되기 때문에 index는 최대 문자열 길이에서 검색하고 싶은 단어의 길이를 뺀 길이이다. 4. 만약에 문자열과 검색하고 싶은 단어 길이만큼 비교하였을 때 같다면 1) coun.. 2021. 6. 7.
[Baekjoon] 백준 알고리즘: 1676 - 팩토리얼 0의 개수 문제 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 내가 생각했던 풀이과정 1) math 라이브러리의 팩토리얼을 사용하여 팩토리얼을 구하고 이를 문자열로 바꿉니다. 문자열로 바꾸는 이유는 슬라이싱을 하기 편하기 위함입니다. 2) 문자열을 거꾸로 슬라이싱을 하면서 문자열 '0'이 나오면 count를 +1을 하고, 문자열이 '0'이 아닌 문자가 나오면 바로 반복문을 빠져나오고 프린트를 합니다. 처음에는 뒤에서부터 조건을 못봤던 ㅠㅠ 나의 풀이 import math N = int(input()) result = str(math.fac.. 2021. 6. 6.
[Baekjoon] 백준 알고리즘: 1057 - 토너먼트 문제 https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 내가 생각했던 풀이과정 1. 토너먼트는 둘이 붙기 때문에 나눴을 때 몫이 같으면 같이 매칭된 것을 의미한다. 2. 이를 이용하여 2로 계속 나눈 몫을 각각 빼준다. 빼줄 때마다 count를 한 번씩 더 세준다. 3. 서로 몫이 같을 때까지 반복한다 나의 풀이 N, start, end = map(int, input().split()) count = 0 while start != end: start -.. 2021. 6. 2.
[Baekjoon] 백준 알고리즘: 9012 - 괄호 문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 내가 생각했던 풀이과정 기본 VPS인 올바른 괄호 문자열을 만족하려면 1) 여는 괄호의 갯수와 닫는 괄호의 갯수가 같아야합니다 2) 또한 한쌍의 여는 괄호와 닫는 괄호의 짝이 맞아야합니다 이를 스택을 이용하면 쉽게 구현할 수 있습니다. 이 문제의 핵심은 '문자열을 앞에서부터 읽어나갈 때, 닫는 괄호는 남아있는 괄호 중에서 가장 최근에 들어온 여는 괄호와 짝을 지.. 2021. 5. 25.