[백준] 거북이 - Python(파이썬)
·
파이썬/코딩테스트
# 2959 백준)파이썬 거북이 x = list(map(int, input().split())) x.sort(reverse=True) print(x[1] * x[3])
[백준] 블랙잭 - Python(파이썬)
·
파이썬/코딩테스트
완전 탐색알고리즘으로 블랙잭을 구하는 문제를 풀어보았다. ​ 카듸의 개수는 100이하로 n개의 숫자에서 3장의 카드를 더해 m의 숫자에 최대한 가까운 값을 출력하는 문제이다. ​ 나의 경우 3중 for문으로 3장을 한장씩 나열하여 index가 1개씩 증가하면서 m과 같은 값이 나오면 break로 같지 않으면 ​ 리스트에 담도록 하였다. import sys n ,m = list(map(int, input().split())) card = list(map(int, input().split())) sum = 0 result = [] chk = True for i in range(n-2): if chk == False: break for j in range(i+1, n-1): if chk == False: br..
[백준] 셀프넘버 구하기 - Python(파이썬)
·
파이썬/코딩테스트
# 백준 4673 셀프넘버 num = 1 # 리스트 10000개로 생성 result = []*10000 # 셀프넘버가 아닌값을 구하여 리스트에 담기 while(True): n_list = list(map(int, str(num))) sum = 0 for i in range(len(n_list)): if i == 0: sum = n_list[i] + num else: sum += n_list[i] num += 1 result.append(sum) if sum >= 10000: break result2 = []*10000 num2 = 1 # 1 - 10000 까지 숫자가 담긴 리스트 생성 for j in range(10000): result2.append(num2) num2 += 1 # 셀프넘버인 값을 구하..
[백준] 콘테스트 문제 - Python(파이썬)
·
파이썬/코딩테스트
정렬 알고리즘 문제로서 20개의 점수를 나열하여 10개씩 W대학 K대학 점수를 나눈뒤 상위 3명의 점수 합을 구하는 문제이다. ​ 파이썬으로 두개의 리스트에 값을 나눠서 넣고 정렬을 통해 상위 3개의 점수를 합산하여 출력하였다. # 콘테스트(백준 5576) 정렬문제 result1 = [] result2 = [] for i in range(20): n = input() if i < 10: result1.append(int(n)) else: result2.append(int(n)) result1.sort(reverse=True) result2.sort(reverse=True) sum1 = result1[0] + result1[1] + result1[2] sum2 = result2[0] + result2[1]..
[백준] ATM - Python(파이썬)
·
파이썬/코딩테스트
돈을 인출하는 순서에 따라 총 소요되는 시간이 얼마인가? ​ 소요되는 시간중 최소 시간을 얼마인지 구하는 정렬 알고리즘 문제이다. ​ 오름 차순을 하고 총합을 구하면 시간이 최소값이 되는걸 알수가 있다. ​ 그래서 아래와 같이 정렬후 걸리는 시간의 총합을 모두 더하였다. import sys n = int(sys.stdin.readline()) result = list(map(int, sys.stdin.readline().split())) result.sort() sum = 0 mid = 0 for i in result: mid += i sum += mid sys.stdout.write(str(sum)+'\n')
[백준] 수 정렬하기 2 - Python(파이썬)
·
파이썬/코딩테스트
백준의 수정렬하기와 동일한 문제지만 N의 개수가 1,000,000 개로 단순 input() 과 print()는 시간을 할당하는데 오래걸려 sys.StdIn, sys.StdOut system 언어를 사용하여 시간 단축을 하였다. import sys n = input() result = list() for i in range(int(n)): result.append(int(sys.stdin.readline())) result.sort() for i in result: sys.stdout.write(str(i)+'\n')
[백준] 수 정렬하기 - Python(파이썬)
·
파이썬/코딩테스트
# 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. n = input() result = list() for i in range(int(n)): result.append(int(input())) result.sort() for i in result: print(i)
삽입정렬 및 계수정렬 파이썬
·
파이썬/코딩테스트
삽입정렬의 경우 시간복잡도가 중첩이 두번돌아 n제곱이지만 정렬이 거의 되어있다는 가정이면 퀵정렬보다빠른 O(N)의 속도를 가질수도 있다. 그러므로 데이터를 잘보고 정렬알고리즘을 선택할 필요가 있다. # 삽입정렬은 선택정렬과 같은 시간 복잡도를 가졌지만 거의 정렬되어있는 상태라면 삽입정렬이 빠르다. array = list(map(int, input().split())) for i in range(1, len(array)): for j in range(i, 0, -1): if array[j] < array[j-1]: array[j], array[j-1] = array[j-1], array[j] else: break print(array) 계수정렬 # 계수정렬 모든 원소의 값이 0보다 크커나 같다고 가정 ar..
[코드업] 1등한 학생의 성적 - Python(파이썬)
·
파이썬/코딩테스트
리스트 형식으로 값을 받아 공백으로 각자 배열을 만들어주었다. 첫번째 성적의 1등인 사람의 리스트 인덱스를 구하였고 인덱스 위치에 있는 값이 성적마다 등수가 몇등인지 구하였다. index의 경우 0부터 시작이라 +1을 해주었다. n = int(input()) # 입력받을 값 result = [] # 이름을 입력받을 리스트 result1 = [] # 첫번째 성적 result2 = [] # 두번째 성적 result3 = [] # 세번째 성적 for i in range(n): data = list(map(str, input().split())) result.append(data[0]) result1.append(int(data[1])) result2.append(int(data[2])) result3.appe..
[코드업] 입체기동장치 구조체 연습 - Python(파이썬)
·
파이썬/코딩테스트
n개의 기동장치를 입력하여 출력 예시처럼 값을 출력시키는 구조체 문제이다. # 코드업 구조차 연습 # 입체기동장치 생상공장 n = int(input()) # 입력받을 값 result = [] # 입체기동장치 번호와, 가스 보유량 담을 리스트 for i in range(n): data = list(map(int, input().split())) result.append(data) result.sort() # 리스트 오름차순으로 정렬 for j in range(n): final = result[j] print(final[0], final[1])
[코드업] 수 나열하기 - Python(파이썬)
·
파이썬/코딩테스트
수열 1 ​ 어떤 규칙에 따라 수를 순서대로 나열한 것을 수열(sequences)이라고 한다. ​ 예를 들어 1 4 7 10 13 16 19 22 25 ... 은 1부터 시작해 이전에 만든 수에 3을 더해 다음 수를 만든 수열이다. 이러한 것을 수학에서는 앞뒤 수들의 차이가 같다고 하여 ​ 등차(차이가 같다의 한문 말) 수열이라고 한다. (등차수열 : arithmetic progression/sequence) 수열을 알게 된 영일이는 갑자기 궁금해졌다. ​ "그럼.... 123번째 나오는 수는 뭘까?" ​ 영일이는 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다. ​ 시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때 n번째 수를 출력하는 프로그램을 만들어보자. ​ 나는 ..
백테스팅 연습 2
·
파이썬/백테스팅
판다스는 로우데이터를 가져올때 name_df.iloc[0] iloc으로 가져와야한다. scalar의 경우는 at이 loc 보다 빠르다.## Much faster if use `.iat` or `.at`# => Table이 크면 클수록 더 차이가 많이 남%timeit df.loc[100, '순이익률(%)']%timeit df.at[100, '순이익률(%)'] boolean을 통해 가치값들을 가져올수 있음# 이번에는 Series와 Series를 비교# 그 결과 새로운 boolean series이 생기게 되어 변수에 저장할 수 있게 됩니다.a = df['순이익률(%)'] > df['영업이익률(%)'] all() - 전부다 TRUE냐any() - TRUE가 하나라도 있냐 nan값 가져오기df[df['순이익률(%..
대전집주인
일어나 코드짜야지