
https://www.acmicpc.net/problem/24313 24313번: 알고리즘 수업 - 점근적 표기 1 f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다. www.acmicpc.net 문제 풀이 이번 문제 역시 처음에 읽고 무슨 소리인지를 몰라 당황했다. 하지만 천천히 읽어보니 함수 f(n) = a1*n + a0와 양의 정수 c와 n이 주어질 경우 O(n)의 정의가 f(n)
https://www.acmicpc.net/problem/24267 24267번: 알고리즘 수업 - 알고리즘의 수행 시간 6 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 문제 풀이 이번 문제는 공식 유도하는게 힘들었다. 처음에는 노가다로 각 반복문마다 나오는 숫자들을 다 정리해 봤다. 그랬더니 1 + 3 + 6 + 10 + 15 = 35 라는 식이 나와서 이것을 코드로 만들어 봤다. n = int(input()) sum = 1 tmp = 1 for i in range(2,n-1): tmp += i sum += tmp pri..
https://www.acmicpc.net/problem/24262 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 문제 풀이 오늘은 단계별 풀어보기에서 시간 복잡도 관련 문제를 풀어보았다. 처음에 이 문제를 읽었을 때 이해를 하지 못했다. 난독증이 온거처럼 문제가 이해되지 않아 구글링을 해 보니 이 문제는 시간 복잡도를 평소에 생각하지 않고 문제를 풀었던 사람들에게 시간 복잡도라는 개념을 각인시켜주기 위한 문제라는 것을 알았다. MenOfPassion(A[], n) {..
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 이 문제는 일반적이 반복문으로 풀이하면 시간 초과가 나는 문제이다. 역시나 처음에 반복문으로 금방 풀어서 제출했는데 시간 초과가 났다. 그래서 반복문으로 접근하는 것이 아닌 수식으로 접근해서 풀어야 하는 문제인거 같아서 문제 풀이 공식을 찾고자 했다. 난이도가 브론즈1로 되어있길래 금방 생각날 줄 알았는데 2%가 부족하게 답이 안 나왔다. (나머지로 구해야 할거 같은데 여기서 더 나아가질 않음..) 한 30분정도 고민하다가 다른 사람들이 풀이를 정리해둔 ..
https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 문제 풀이 처음에 생각한 방법은 수학 식을 찾으려고 애썼다. 진법 변환 1 문제에서 ZZZZZ 36은 35*36^4 + 35*36^3 + 35*36^2 + 35*36^1 + 35*36^0 = 60466175라는 점을 이용해서 35는 미지수 x라고 정의하고, 아래처럼 식을 만들어 봤다. \begin{align*} 60466175 &= 36^{n}x + 36^{x-1}x + \cdots + 36..
https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제 풀이 첨에 생각한 문제풀이 방식은 색종이 하나의 넓이는 100이기 때문에 '색종이의 총 개수 x 100 - 겹친 부분의 넓이' 이렇게 구하려고 하였다. n = int(input()) x_list = [] y_list = [] x = 0 y = 0 for _ in range(n): a, b = map(int,input().split()) x_list.append((a,a+10)) y_list.ap..
https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 문제 풀이 문제에서 시키는데로 (학점 * 과목평점) / 학점의 총합 을 구해주면 된다. rating_dic = {'A+':4.5,'A0':4.0,'B+':3.5,'B0':3.0,'C+':2.5,'C0':2.0,'D+':1.5,'D0':1.0,'F':0.0} rate = 0 score_sum = 0 for _ in range(20): subject, score, grade = input().split()..
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 풀이 단어중에서 알파벳이 처음 나오거나 연속으로 나오는 경우를 제외하고 한번이라도 더 등장하면 그룹단어가 아니다. 여기서 힌트를 얻었고, 이를 코드로 구현해봤다. n = int(input()) result = n for _ in range(n): word = input() arr = [] arr.append(word[0]) for i in range(len(w..