분류 전체보기 562

[n1535] 안녕 in python (배낭문제)

1535번 안녕 문제는 브루트포스 알고리즘, 배낭 문제에 해당한다. (처음에 내가 생각했던 풀이) itertools 라이브러리 combination을 이용하여 먼저 경우의 수를 찾고 그 수들 중에 조건을 만족하면서 값이 최대인 수를 출력하게끔 했다. answer에 아무 숫자가 들어가있지 않다면 조건에 해당하는 경우가 하나도 없다는 것을 의미한다. 그래서 0을 출력하게끔 처리해야 valueError가 발생하지 않는다. 제한 시간은 2초인데 실행 시간이 1.2초 나와서.. 내 코드보다 더 효율적인 코드를 찾아 떠나보았다. import itertools person = int(input()) loss = list(map(int, input().split())) smile = list(map(int, input..

[n1063] 킹 in python

문제 이해를 잘못해서 시간을 꽤 소요했다 ㅠㅠ 킹 도착 위치에 돌이 잇으면 그때만 킹과 돌의 위치를 모두 변경하는 것이고 돌이 도착위치에 없다면 킹의 위치만 움직여주면 된다. 이동 방향은 dictionary, index를 이용했다. ord : 65 -> A chr : A -> 65 # T,RT,R,RB,B,LB,L,LT dx = [-1, -1, 0, 1, 1, 1, 0, -1] dy = [0, 1, 1, 1, 0, -1, -1, -1] dic = {'T': 0, 'RT': 1, 'R': 2, 'RB': 3, 'B': 4, 'LB': 5, 'L': 6, 'LT': 7} king, dol, n = input().split() king = list(king) # 열, 행 dol = list(dol) # 열, ..

[n14916] 거스름돈 in python

동전의 개수가 최소? 11 12 13 14 15 16 17 18 19 20 숫자 1과 3만 제외하면 어떤 숫자든 5랑 2로 나누어짐 1이랑 3만 안 될뿐!! 17원 5원 * 3개 , 2원 * 1개 13원 5원 * 2개 x 5원 * 1개, 2원 * 4개 11원 5원 * 2개 , 2원 * 1개 , 1이 초과된다 x 5원 * 1개 , 2원 * 3개 n = int(input()) cnt = 0 temp = n % 5 # 나머지 if n == 1 or n == 3: print(-1) exit(0) elif temp % 2 == 0: # 2로 딱 떨어지면 cnt = n // 5 + temp // 2 print(cnt) exit(0) else: cnt = n // 5 - 1 + (temp + 5) // 2 print..

카테고리 없음 2021.10.08

[n11504] 돌려 돌려 돌림판 in python

ex[0]은 x의 맨 앞자리 수 ey[0]은 y의 맨 앞자리 수 new_array를 만들어서 idx 에러 방지함 사실 index를 어떤식으로 처리해야 하나 고민했음. 예제1) array가 [3 7 8 3 1 9 2 7]라고 생각해본다. m = 3 x= 200 y=311 z가 x보다 크면서 같고, y보다 작으면서 같을 경우에만 카운트를 진행한다. 따라서 x의 맨 앞자리 수 2와 y의 맨 앞자리수 3을 이용하면 손쉽게 값을 구할 수 있다. 리스트에서 2의 위치를 전부 찾는다. 6번째 위치에서부터 시작해서 총 3번의 이동을 통해 z를 만들어야한다. 그리하여 z의 값은 2 7 3 7이 리스트의 맨끝이니까 앞으로 다시 돌아가야하는데 이 과정을 코드로 작성하니 좀 지저분해서 new_array를 만들었다. array..

[탈잉 수강 후기] 월간 코드리뷰 ver_0.1 | 개발자로 성장하기 위해 꼭 필요한 강의

개발자로 성장하는 방법에 대해 고민하던 찰나 우연히 월간 코드 리뷰 강의에 대해 알게 되었습니다. 현직 개발자분들이 직접 성장하기 위해 노력했던 과정에서 깨달은 노하우를 공유해주신다하여 고민 없이 바로 결제하였습니다. 총 4시간 동안 강의가 진행되었지만 저한테는 전혀 길게 느껴지지 않았습니다. 평소에 궁금했던 내용을 주제로 강의를 해주셨기 때문입니다. QnA 시간은 10:40~ 11:00로 예정되어 있었습니다. 하지만 올라온 질문의 양이 꽤 많았어요.. 그래서 제가 했던 질문은 답변을 못 받겠구나 생각하고 있었는데 개발자분들이 마지막 질문까지 다 답변해주셨어요 ㅠㅠ (쏘 쓰윗..) 그래서 예정시간보다 50분이 지난 11시 50분에 실강이 종료되었습니다. 이번 강의에 대한 짧은 후기(?)는 돈이 하나도 아..

[n1411] 비슷한 단어 in python

(풀이) 조합을 이용해서 일단 경우의 수를 먼저 뽑았다. 그리고 두 개의 리스트를 이용하여 탐색을 진행한다. (단어 A와 단어 B가 일대일 관계여야한다는 거!) ex) aa ab A B a - a 다음 문자열 탐색에서 a 는 무조건 a랑 이어져야 한다. a - b a랑 a랑 이어져야 하는데 a랑 b랑 이어져서 카운트는 하지 않는다. ex) abca zbxz A B a - z 다음 문자열 탐색에서 a 는 무조건 z랑 이어져야 한다. b - b 다음 문자열 탐색에서 b는 무조건 b랑 이어져야 한다. c-x 다음 문자열 탐색에서 c 는 무조건 x랑 이어져야 한다. a - z a가 z랑 잘 연결되었으니까 문제 없음! 이 예시 같은 경우에는 결과값에 포함 from itertools import combinatio..

[n13900] 순서쌍의 곱의 합 in python

https://www.acmicpc.net/problem/13900 13900번: 순서쌍의 곱의 합 첫 번째 줄에는 입력 받을 정수의 개수 N(2 ≤ N ≤ 100,000) 두 번째 줄에는 N 개의 정수가 주어진다. 이때 입력 받는 정수들의 범위는 0이상 10,000 이하이다. www.acmicpc.net 1. 메모리초과 -> 조합 함수 사용 # from itertools import permutations, combinations # # num = int(input()) # inp = list(map(int, input().split())) # for i in inp: # arr=list(combinations(i,2)) # arrs = list(combinations(inp, 2)) # result ..

[n1515] 수 이어 쓰기 in python

(처음 생각) 처음에는 문자열 말고 리스트로 받아와서 작업을 진행했다. 그랬더니 인덱스 처리할 부분때문에 계속 문제가 발생했다. 로그님의 도움을 받아 겨우 몇 시간만에 풀어낼 수 있었던 문제.. :( 문자열 문제는 너무 어려웡.. 이 문제는 이해하는 것부터 어려웠다.. 그래도 문제는 결국 이해했지만! ((이 문제는 문자열로 풀면 훨씬 간단하다는 거..)) 예제 4번) 82340329923 8 12 13 14 20 23 24 29 39 42 43 에서 임의의 숫자를 빼낸 결과물이 82340329923이다. 이 문제는 1부터 시작해가지고 입력값(82340329923 = temp)의 0번째 위치의 값과 비교하면서 결과값을 찾아나간다. num는 1부터 시작해서 +1씩 증가한다. 만약 num의 맨 앞자리 숫자와 ..