분류 전체보기

·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net [풀이] 정렬할 때 조건에 글자 길이도 필요하기 때문에 입력 단어를 넣을 때 len을 이용해 글자 길이도 리스트 voca_li에 함께 넣어주었다. 또, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력해야 하기 때문에 set을 이용해 중복 단어를 삭제했다. 주 핵심은 이중 리스트 정렬 문제였는데 voca_li = [(2, 'it'), (4, 'wait'), (1, 'i') ..
·문제풀이/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)
서채리
'분류 전체보기' 카테고리의 글 목록 (22 Page)