728x90

파이썬 18

백준 1193

#1193 x = int(input()) d = 1 # 대각선 while x > d: x -= d d += 1 if d % 2 == 0: up = x down = d - x + 1 elif d % 2 == 1: up = d - x + 1 down = x print(up,"/",down,sep="") 이 문제는 규칙을 알지만 수식으로 나타내는 것을 어떻게 해야할 지 몰라 많이 고민했던 부분이다. 결국 검색의 도움을 받아 코드를 완성했지만 다시 생각해내서 풀라고 하면 다시 오랜 고민을 할 것같은 문제이다. 수학 문제 부분은 규칙은 이해가 가지만 코드로 구현하는 부분이 너무 어렵다는 생각이 든다. 다시 봐야 할 문제 중 하나!

백준 4344

#4344 test_case = int(input()) for i in range(test_case): score = list(map(int,input().split())) sum = 0 new = [] for j in score[1:]: sum += j avg = sum/score[0] for j in score[1:]: if avg < j: new.append(j) result = len(new)/score[0]*100 print("{:.3f}".format(result),"%",sep='') 처음에 avg비교 전에 for j~ 부분을 안쓰고 했더니 계속 완전 다른 값이 나왔다. 이유를 아무리 봐도 모르겠었다가 다시 더 추가했더니 돌아간다... 복잡해증말!

감성 분석 Sentiment Analysis

내용 관련 예시 코드는 여기를 확인해주세요. 네이버 상품 리뷰와 뉴스 그룹 데이터 등을 사용하여 감정 분석을 실제 코드로 연습한 것입니다. 시각화를 이용하여 train set과 validation set의 accuracy를 확인하였습니다. 긍정적인 댓글을 남겼을 때, 부정적인 댓글을 남겼을 때의 pos/neg를 잘 구분해내어 확률을 나타내는지 확인할 수 있습니다.

백준 2839

#2839 n = int(input()) answer = 0 while n >= 0: if(n % 5) == 0: answer += (n // 5) print(answer) break n -= 3 answer += 1 else: print(-1) 처음에는 이 문제를 노가다로 풀려고 했는데 줄이 너무 길어져서 다시 고민했다. 힌트를 얻기 위해 검색하던 중, 이 문제가 그리디 알고리즘이라는 것을 알게 되었다. "그리디 알고리즘"은 잔돈 거슬러 주기에서 많이 쓰이는 알고리즘이라고 한다. 코드의 풀이를 하자면, n을 입력 받은 후, n이 가장 큰 수인 5로 나누어진다면 바로 답을 구하고, 그렇지 않으면 -3을 해줌으로써, 3으로 한 번 나누어졌다고 생각할 수 있으므로 answer에는 1을 더해준다. 이런 식으로..

백준 2775

#2775 t = int(input()) # test case for i in range(t): k = int(input()) # 층 n = int(input()) # 호 f0 = [x for x in range(1,n+1)] for j in range(k): for k in range(1,n): f0[k] += f0[k-1] print(f0[-1]) t는 test case, k,n은 각각 층과 호수라고 할 때, 손으로 직접 계산한다면 다음과 같다. 1호 2호 3호 0층 1 2 3 1층 1 3(1+2) 5(2+3) 2층 1 4 8 3층 1 5 12 위의 표처럼 만들어질 수 있도록 f0 list를 만들어준다. 그 후 층수에 대한 호수만큼 for문을 돌려 k층일 때, (k-1)층의 n의 호수만큼 더해준다. ..

728x90
반응형