목록분류 전체보기 (39)
이것도 알아야 하네?
풀이 progresses에 speed를 더해서 하루하루 지난다고 생각하고 그 당일 날 새 100이 넘은 얘들까지 수를 세아려 answer에 넣어줍니다. 주의할 점은 지난 배포에 포함한 부분까지를 표시해주어서, 100이 넘는 일들 중 지난 배포까지 포함된 부분을 빼줘야지만 이번에 새로 100이 넘는 부분만 남는다는 것입니다. 저는 이렇게 풀었지만 많은 분들이 day = (99 - progresses[i]) / speeds[i] + 1; 로 해당 progesses가 100이 넘는 기간을 미리 구해서 문제를 풀었더라구요, 저도 객관적으로 보면 그 부분이 for문을 돌지 않고 빨리 구하는 방법이라고 생각합니다 :-) 전체 성공 코드 #include #include using namespace std; vecto..
풀이 방법 해당 문제는 동적 계획법으로 풀었지만, 동적 계획법으로 푸는 문제 중 난이도가 높은 문제는 아닙니다. 지나온 땅의 합을 저장하기 위해 땅의 크기와 동일한 2D vector를 선언합니다. programmers에서 제공하는 알고리즘 문제 풀이에서는 해당 부분을 2D array 형태로 선언헀지만, array로 필요한만큼만 선언하려면 동적할당을 사용해야하는데, 귀찮아서 vector 형태로 선언했습니다. 해당 2D vector를 A라고 할때 A[i][j]에는 land[i][j]까지 오는 방법 중 지나온 숫자의 합이 가장 큰 값을 저장합니다. 이 때 가장 큰 값을 구하는 방법은 A[i-1] 중 A[i-1][j]를 제외한 가장 큰 값과 land[i][j]를 더하는 것입니다. 코드는 아래 전체 성공 코드를 ..
문제 LIST 1. 동물 농장에는 동물이 몇마리? from animal import * sheep = animals.count("메에에") chicken = animals.count("꼬끼오") dog = animals.count("크르릉") print(sheep, chicken, dog) 2. 절사평균을 구해봅시다! def myMean(my_list): return (sum(my_list) - max(my_list) - min(my_list)) / (len(my_list) - 2) 3. 어머님은 저만 믿으시면 됩니다. 삐릿삐릿 def skyCastle(my_list): my_dict = {"에릭": 1, "김동완": 2, "전진": 3, "이민우": 4, "앤디":5} return [my_dict[it..
문제 LIST 1. Who needs Python? s = input() print("Life is short, {} need Python!".format(s)) 2. 마천루 N = int(input()) for i in range(N): if i < 5: print('*' * (i + 1)) else: print('*' * 5) 3. 3, 6, 9! num = int(input()) if ((num+1) % 3 == 0: print("짝") else: print(num + 1) 4. 수타박수 num = int(input()) sum_ = 0 coffee = {'아메리카노': 4100, '카페라떼': 4600, '카라멜마끼아또': 5100} for i in range(num): coffee_name = ..
클래스 간 데이터 양 차이가 큰 경우 클래스 불균형이 있다고 말한다. 불균형 데이터의 문제점 데이터 클래스의 비율이 너무 차이나면 단순히 majority 클래스를 택하는 모형의 정확도가 높아지므로 모형의 성능 판별이 어려워진다. 즉, 정확도(accuracy)가 높아도 데이터 개수가 적은 클래스의 재현율(recall)가 급격히 작아지는 현상이 발생할 수 있다. 때문에 이런 상황에서는 정확도 외의 다른 지표들을 확인할 필요가 있다. 실제 값 (정답) 참 (Positive) 거짓 (Negative) 예측 값 참 (Positive) TP (True Positive) FP (False Positive) 거짓 (Negative) FN (False Negative) TN (True Negative) 정확도는 맞은 개..
데브옵스(DevOps)란? 개발(Development)와 운영(Operations)의 합성어로 소프트웨어 개발팀과 IT 운영팀이 협업하여 전체 사이클을 함께 관리하는 방식을 의미합니다. 개발자는 개발자는 개발이 완료된 시스템을 운영팀에게 이관하고 운영팀은 개발된 시스템을 배포/운영을 하는 것을 의미합니다. 기존에는 분리되어 있던 소프트웨어 개발팀과 IT 운영팀이 협업을 통해 더 빠르고 안정적으로 소프트웨어를 빌드, 릴리즈할 수 있습니다. 원활한 소통 및 공동 작업을 위해서 개발자는 운영자를, 운영자는 개발자를 생각하는 오픈 마인드를 가지고 커뮤니케이션이 뒷바침되어야 합니다. 노옵스(NoOps)란? 노옵스(NoOps)란 단어 그대로 운영자가 없다는 뜻입니다. 데브옵스는 서비스에 대한 사용자의 요청을 보다 ..