Algorithm

·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2789 2789번: 유학 금지 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, www.acmicpc.net [풀이] 입력 str의 첫 번째 문자부터 "CAMBRIDGE"에 포함된 알파벳이 있는지 비교한다. 같지 않을 때마다 변수 cnt를 1씩 증가시키는데 끝까지 비교했을 때 cnt가 9라면 "CAMBRIDGE"에 있는 알파벳이 포함되어있지 않은 경우이기 때문에 최종 출력 문자 completed에 문자를 추가한다. 위 과정은 replace 함수를 쓰면 간단해지는데 "CAMBRIDGE"의 알파벳이 있을..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net [풀이] 사용자 입력 값을 split() 함수로 나누어 변수 text에 넣으면 빈칸을 제외한 각 단어로 리스트가 만들어진다. 그렇게 만들어진 리스트의 길이를 구하면 완성 [코드] if __name__ == '__main__': text = input().split() print(len(text))
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2037 2037번: 문자메시지 첫째 줄에 p와 w가 주어진다. (1 ≤ p, w ≤ 1,000) p는 버튼을 한번 누르는데 걸리는 시간이고, w는 AC와 같은, 같은 숫자인 문자를 연속으로 찍기 위해 기다리는 시간을 의미한다. 그리고 둘째 줄에는 www.acmicpc.net [풀이] 그림대로 파이썬 이중 리스트를 만들었다. total과 past_j 변수를 초기화한 후 입력받은 값을 넣은 text 변수의 첫 번째 글자부터 가져와 그 글자가 공백(' ')이면 2를 추가, 아닐 경우 이중 리스트 keyboard에 접근해 첫 번째 글자와 일치하는 값이 있는 인덱스를 구했다. 만약 이전에 입력했던 글자와 현재 입력하려는 글자가 같은 버튼이라면(i..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1362 1362번: 펫 당신은 게임으로 펫을 기르고 있습니다. 이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.' 펫에게는 적정 체중이 있습니다. 펫의 실제 체중이 적정 체중의 1/2배를 www.acmicpc.net [풀이] 이번 문제의 놓치기 쉬운 중요한 포인트는 펫이 죽었을 경우에 다시 살릴 수 없다는 것이다. 때문에 'E' 또는 'F'와 n 값이 입력돼 펫의 실제 체중을 구할 때마다 실제 체중이 0 이하인지를 확인해 펫이 죽었는지 확인했다. 만약 die 가 True로 바뀌었을 경우, 조건문 if not die에 진입하지 못해 더 이상 밥을 주거나 운동을 시킬 수 없게 된다. [코드] if __name_..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2596 2596번: 비밀편지 병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과 www.acmicpc.net [풀이] 병현이가 보낸 문자를 6자씩 끊어 리스트 s_li에 저장하고 둘 사이의 약속은 리스트 promise에 저장한다. 3중 중첩 반복문으로 병현이가 보낸 문자 s_li를 기준으로 두고 promise와 차례대로 한 문자씩 비교하면서 각 자리의 문자가 일치할 경우 cnt가 1 증가한다. 병현이가 문자를 제대로 보냈을 경우와 한 자만 틀렸을 경우(cnt >= 5)에는 해..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 가 된다. 평균 www.acmicpc.net [풀이] 리스트.sort()만 쓰면 중앙값 쉽게 구할 수 있음 [코드] if __name__ == '__main__': number = [int(input()) for _ in range(5)] number.sort() print(round(sum(number) / 5)) print(number[2])
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2592 2592번: 대표값 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30, 20, 60, 30, 40, 50의 평균은 www.acmicpc.net [풀이] 간단한 계산 문제 코드 단순화에 중점을 뒀다. ## 1번 number = [] for _ in range(10): number.append(int(input())) ## 2번 number = [int(input()) for _ in range(10)] 1번 → 2번 간단하게 구현 ## 1번 for i in range(len(number)): su..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1296 1296번: 데이트 첫째 줄에 오민식의 영어 이름이 주어진다. 둘째 줄에는 좋아하는 여자가 몇 명인지 N이 주어지고, 셋째 줄부터 N개의 줄에 여자의 이름이 하나 씩 주어진다. N은 50보다 작거나 같고, 모든 이름은 www.acmicpc.net [풀이] 되게 쉬운 문제라고 생각하고 풀었는데 이름 중에 알파벳 'L'이 들어가지 않은 사람일 경우 어떤 수에 0을 곱해도 0이 돼 예제 입력 소녀시대 멤버들의 이름에는 'L'이 들어가는 사람이 없어 모든 확률이 0이 되는 게 이해가 안 돼서 뭔가 헤맸다.. 그냥 확률이 다 0이고 그 0 중 'HYOYEON'의 알파벳 'H'가 알파벳이 가장 앞서 정답으로 출력되는 거였다. 하하 1. co..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다. www.acmicpc.net [풀이] 1. sys.stdin.readline() std.stdin.readline() 은 개행문자 \n 이 같이 입력받아지기 때문에 반복문으로 여러 줄을 입력받는 상황에서는 반드시 std.stdin.readline() 을 반드시 사용해야 한다. [코드] import sys if __name__ == '__main__': sentence = sys.stdin.read() alphabet = 'abcdefghijk..
서채리
'Algorithm' 태그의 글 목록 (14 Page)