본문 바로가기
반응형

DEVLOG/Algorithms34

[BOJ 2805] 나무 자르기 - 파이썬 풀이 문제 보기 2805번: 나무 자르기 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기을 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따 www.acmicpc.net 파이썬(Python) 풀이 N, M = map(int, input().split()) trees_height = list(map(int, input().split())) min_height.. 2019. 9. 11.
[이분 탐색] 알고리즘 설명 및 예제 풀이 이분 탐색(Binary Search) 이분 탐색은 코딩 테스트에 많이 출제되는 문제 중 하나입니다. 이분 탐색의 주요 조건은 정렬되어 있는 배열입니다. 순차탐색의 경우 배열의 처음부터 끝까지 배열의 모든 원소를 체크합니다. 이분탐색은 탐색 범위를 절반씩 줄여가며 찾아가는 탐색 방법입니다. 예를 들어보겠습니다. [ 9, 4, 2, 5, 3, 8 ] 다음과 같은 리스트가 주어졌을 때 숫자 2를 찾는다고 가정해 보겠습니다. 이분탐색을 위해 먼저 정렬을 해줍니다. [ 2, 3, 4, 5, 8, 9 ] 먼저 배열의 중간에 위치한 5와 2를 비교합니다. 2는 5보다 작으므로, 탐색 범위를 5의 왼쪽에 있는 원소들로 줄일 수 있습니다. 이제 탐색 범위는 [ 2, 3, 4 ]이 됩니다. 이번에는 중간 원소인 3과 2를.. 2019. 9. 10.
[BOJ 1157] 단어 공부 - 파이썬 풀이 문제 보기 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 해설 알파벳 소문자 a-z의 아스키코드는 97 ~ 122이고, 대문자 A-Z의 아스키코드는 65_90입니다. 아스키 코드 변환하는 방법은 2019/09/10 - [DEVLOG/Algorithms] - [BOJ 11654] 아스키 코드 - 파이썬 풀이 문자열에서 각 문자의 개수를 세는 방법은 count() 함수를 사용하는 것입니다. "baaa"라는 문자열이 주어졌을 때, word.count('a')를 통해 'a'의 개수 3을 얻을 수 있습니다. 각 문자별로 개수를 리스트에 저장하고.. 2019. 9. 10.
[BOJ 10809] 알파벳 찾기 - 파이썬 풀이 문제 보기 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 문제 해설 find() 함수는 문자열에서 문자의 첫 번째 위치를 찾을 수 있는 함수입니다. a부터 z까지 순회하며, 문자열에서 해당 문자의 위치를 리스트에 저장하면 됩니다. 파이썬(Python) 풀이 alphabet_list = [] S = input() for ascii_code in range(97, 123): alphabet_list.append(S.fi.. 2019. 9. 10.
반응형