본문 바로가기

알고리즘48

[Baekjoon] 백준 알고리즘: 1302 - 베스트셀러 문제 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 내가 생각했던 풀이과정 1. N의 갯수만큼 책 이름을 입력받으면서 lower( ) 메서드를 통해 소문자로 전부 바꿔준다. 2. 해시를 사용하기 위해 book이라는 빈 딕셔너리 구조를 선언한다. 입력을 받으면서 1) 해시의 keys 안에 만약 이전에 해당되는 key가 존재할 경우 해당되는 key의 value에 1을 더해준다. 2) 해시의 keys 안에 만약 이전에 해당되는 key가 존재.. 2021. 6. 14.
[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.