본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶

Data/python·알고리즘39

[백준 알고리즘] 10250번 ACM 호텔 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다.문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모든 인접.. 2018. 6. 12.
[백준 알고리즘] 1193번 분수찾기 이런식으로 진행이 되는데, 내가 찾은 규칙은 아래와같다. 1) 홀수분자: 3 -> 2 -> 1 (-1)분모: 1 -> 2 -> 3 (+1) 2) 짝수분자: 1 -> 2 (+1)분모: 2 -> 1 (-1) 이렇게 진행 된다는걸 알수 있다! 이제 input()받은 값이 어느번호에 속하는지만 알면 구할 수 있당!그럼 2만! 123456789101112131415num = int(input())cnt = 0sum = 0 while(True): cnt += 1 sum += cnt if num 2018. 6. 11.
[백준 알고리즘] 2292번 벌집 1) 2번방을 기준으로 6*1 6*2 6*3 이런식으로 값이 증가한다. 2) 저방을 기준으로 +1해서 값을 찾는데, 3) 만약 저방의 값과 num값이 같아지게 되면, cnt값은 증가하지 않은채로 출력되기 때문에,이러한 경우에는 +2를 시켜서 내보내면 된다! ex)2라고 한다면, cnt는 1이 출력됨 근데 값은 2임! 123456789101112131415num = int(input())cnt = 0room = 2if num == 1: print(1)else: while(True): cnt += 1 room += 6*cnt if num 2018. 6. 11.
[백준 알고리즘] 5622번 다이얼 1) 알파벳 -> 시간2) 더하기 12345678910111213141516171819202122232425num = input() def search_num(num): if num in ['A', 'B', 'C']: return 3 elif num in ['D', 'E', 'F']: return 4 elif num in ['G', 'H', 'I']: return 5 elif num in ['J', 'K', 'L']: return 6 elif num in ['M', 'N', 'O']: return 7 elif num in ['P', 'Q', 'R', 'S']: return 8 elif num in ['T', 'U', 'V']: return 9 elif num in ['W', 'X', 'Y', 'Z']: .. 2018. 6. 9.
[백준 알고리즘] 2908번 상수 멍청이 상수... 1) 상수는 숫자를 거꾸로 읽는다734, 893 -> 437, 8932) 두 수를 입력받는다3) 상수의 입장에서 큰 수를 출력하라 123456789num = input().split() max_num = 0for i in num: i = int(i[::-1]) if max_num 2018. 6. 9.
[백준 알고리즘] 1157번 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램 1) 첫째줄에 알파벳 대소문자로 이루어진 단어가 주어짐2) 가장 많이 사용된 알파벳을 대문자로 출력- 단 여러개일 경우 ? 출력 12345678910111213141516171819202122232425word = input().upper() word_dict = {}for i in word: if i not in word_dict: word_dict[i] = 1 else: word_dict[i] += 1 # print(word_dict) num_list = []word_list = []for word in sorted(word_dict, key = word_dict.get, reverse=True).. 2018. 6. 9.