Algorithm

·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 송유진의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000 www.acmicpc.net [풀이] 입력의 둘째 줄은 n이 0보다 큰 경우에만 주어지기 때문에 n == 0인 경우와 n > 0인 경우로 나눈다. 1. n == 0일 때 랭킹은 항상 1이다. 2. n > 0일 경우 1) n ==p이고 랭킹의 가장 마지막 점수(가장 작은 점수)가 유진의 점수와 크거나 같을 경우 -1을 출력한다. 2) 그 외에는 랭킹의 점수가 유진이의 점수보다 작거나 같을 ..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net [풀이] 단어 각각의 길이가 1 이상이어야 하기 때문에 첫 번째 단어는 len(s)-2까지, 두 번째 단어는 그다음부터 len(s)-1까지, 세 번째 단어는 len(s)까지 검사한다. 변수 temp에 순서대로 슬라이싱 해 역순으로 넣고 temp를 voca 리스트에 추가한다. list를 출력하면 ['moletib', 'mboleti', 'mibolet', 'mtibole', 'metibol'..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2204 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net [풀이] sort 함수에서 key값을 str.lower로 주면 풀 수 있다. [코드] if __name__ == '__main__': while True: voca = [] n = int(input()) if n == 0: quit() for i in range(n): voca.append(input()) voca.sort(key=str.lower) print(voca[0])
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net [풀이] 입력받을 때 '9'를 '6'으로 변환해 받는다. 그 후 0부터 8까지의 빈도수를 셀 리스트에 count 함수를 사용해 구한 값을 넣어준다. 주의할 점은 9와 6을 같이 frequent[6]에 담았기 때문에 2를 나눠준 후 나머지 값은 더해준다. 따라서 frequent[6] = frequent[6] // 2 + frequent[6] % 2 를 통해 값을 알맞게 조정해준다. 그 후 max 함수를 통해 frequent 리스트의 최댓값을 구한다. [코드] if __name__..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2435 2435번: 기상청 인턴 신현수 첫째 줄에 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 주어진다. N은 온도를 측정한 전체 날짜의 수이다. N은 2이상, 100이하이다. K는 합을 구하기 위한 연속적인 날짜의 수이다. K는 1과 N 사 www.acmicpc.net [풀이] 진짜 문제에 쓸데없는 얘기 대박..;;... 반복문의 i 범위를 n-k로 생각했었는데 n과 k의 숫자가 동일할 경우에는 한 번도 비교를 안 하게 된다. 따라서 n-k+1을 해주어야 한다. 이것만 조심하면 금방 푸는 문제 [코드] if __name__ == '__main__': n, k = map(int, input().split()) measures =..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2508 2508번: 사탕 박사 고창영 창영이가 드디어 취직을 했다!! 그가 30세까지 취직을 안하던 이유는 바로 마음에 다니는 직장을 찾지 못해서였다. 이번에 창영이가 취직한 곳은 사탕 공장이다. 사탕 공장에 다니면 사탕 처럼 www.acmicpc.net [풀이] 우선 사탕 입력을 box 리스트에 넣어주었다. box를 출력하면 ['.>ooooo
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2711 2711번: 오타맨 고창영 첫째 줄에 테스트 케이스의 개수 T(1
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2896 2896번: 무알콜 칵테일 첫째 줄에 구매한 오렌지, 사과, 파인애플 주스의 양 A, B, C가 주어진다. (1 ≤ A, B, C ≤ 500) 둘째 줄에 칵테일을 만드는데 필요한 각 주스의 비율 I, J, K가 주어진다. (1 ≤ I, J, K ≤ 50) www.acmicpc.net [풀이] 식만 구하면 간단하게 풀 수 있는 문제 [코드] if __name__ == '__main__': a, b, c = map(int, input().split()) i, j, k = map(int, input().split()) m = min(a/i, b/j, c/k) print(a - i * m, b - j * m, c - k * m)
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net [풀이] 두 가지 풀이가 있다. 1) 리스트 선언 후 검사 피시방 자리 100개를 다 0으로 초기화한 후 입력받은 자리를 인덱스로 이용해 해당 인덱스의 값이 0이면 1을 더하고 0이 아니면 이미 다른 손님이 앉아있기 때문에 refused_cnt를 1 증가시킨다. 2) set 자료형 이용 만약 세 명의 손님의 희망 좌석이 1, 2, 2일 경우 이를 set()으로 감싸면 중복되는 값은 없어지기 때문에 1, 2가 된다. 이를 처음..
서채리
'Algorithm' 태그의 글 목록 (12 Page)