[백준 15686] 치킨배달

3-3

접근

문제의 입력조건이 작아 모든걸 탐색하는 brute force 알고리즘을 사용할수있음을 추측할수있다.

일단 M개의 치킨집에 대한 모든 조합을 구해 list에 담은뒤에

해당리스트를 순회하며 해당 치킨집들이 선택되었을때 도시의 치킨거리를 구하여 answer배열에 담아준다

이후 answer배열중 min값을 택하여 출력해준다.

  • from itertools import combinations
  • for i, value in enumerate()

위두가지를 잘 사용

Read more

[백준 1157] 단어공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

Read more

[백준 1316] 그룹 단어 체커

3-3

1. 접근 & 구현

간단한 문제이다.

count 함수를 활용하였다.

알파벳의 갯수를 새준다음 이들이 연속된 갯수인지를 check해주기 위해 count()의 start,end를 정해주어 이들이 같으면 연속된것이고, 만약 다르다면 뒤에 같은 알파벳이 더 나온다는 뜻이므로 반복문을 break해주고 bool 값을 false로 바꾸어주어 그룹단어가 아님을 나타내준다.

만약 조건 check를 통과하였다면 index를 연속된 알파벳 이후로 바꾸어주어 반복문을 계속한다.

Read more

[백준 2941] 크로아티아 알파벳

3-1

간단한 문자열 문제이다.

입력으로 주어진 단어의 크로아티아 알파벳 갯수를 출력한다.

일단 크로아티아 알파벳의 정보를 담고있는 dictionary를 만들어 줘보자.

이후 특별히 긴 알파벳의 시작을 보면 c,d,l,n,s,z일때만 1자리 뒤에까지 check해주고 dz일때는 3번째까지 check해준다.

Read more

[백준 5430] AC

3-3

구현을 완료했지만 시간 복잡도가 높아 시간초과가 나온다.

reverse와 pop의 시간복잡도가 O(n)이므로 pop때문에 이러한 문제가 발생하는것 같다.

따라서 pop을 deque를 사용하여 popleft로 시간복잡도를 O(1)로 낮추지만 시간초과는 해결되지 않았다.

Read more