본문 바로가기

알고리즘47

[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.
[프로그래머스] 정수 제곱근 구하기 문제 https://programmers.co.kr/learn/courses/30/lessons/12934 내가 생각했던 풀이과정 1. 처음 생각한 것은 제곱근을 확인하기 위해 나눴을 때 정수형인지 판별하려 했으나 나눴을 때 실수형(float) 형태로 나오기 때문에 다른 방법을 생각했습니다. 두번째로 생각한 점은 제곱근을 했을 때 만약 정수가 나왔다면 int 형태로 바꾼 다음 다시 제곱을 하여도 n이랑 같아야 하기 때문에 그 방식을 사용하였습니다. 2. 만약 정수의 제곱이면 정수(제곱근)에 1을 더한 수를 제곱한수를 리턴 3. 정수의 제곱이 아니면 -1 을 리턴 나의 풀이 def solution(n): result = 0 temp = n**(1/2) if int(temp)**2 == n: result =.. 2021. 5. 28.