목록전체 글 (25)
DANIELOGIC

[Python] 프로그래머스 키패드 누르기https://school.programmers.co.kr/learn/courses/30/lessons/67256문제코드def solution(numbers, hand): new = [[3,6,9,'#'],[2,5,8,0],[1,4,7,'*']] result = '' l_loc = (2,3) r_loc = (0,3) for i in numbers: if i in new[2]: result += "L" l_loc = (2,new[2].index(i)) elif i in new[0]: result += "R" r_loc = (0,new[0..

[Python] 프로그래머스 기사단원의 무기https://school.programmers.co.kr/learn/courses/30/lessons/136798문제코드def solution(number, limit, power): my_list = [] for i in range(1,number+1): temp = 0 for j in range(1,int(i**0.5)+1): if i % j == 0: temp += 2 if j == i**0.5: temp -= 1 if temp > limit: my_list.append(power)..

[Python] 프로그래머스 최소직사각형https://school.programmers.co.kr/learn/courses/30/lessons/86491문제코드def solution(sizes): w = [] h = [] for i in range(len(sizes)): if sizes[i][0] 리뷰복잡한 방식으로 접근해 처음엔 답이 2시간 가까이 나오지 않았다.고작 레벨 1 문제인데 풀리지 않는 것이 스스로 분하고 한심했다.결국 힌트 없이 간단한 접근 방식으로 문제를 해결했다.입력받은 리스트의 각 요소를 큰 값이 앞에 오도록 정렬한다.이후 첫번째 열중 가장 큰 값을 기준점으로 잡고, 두번째 열중 가장 큰 값을 곱해주면 된다. 문제를 풀 때 너무 복잡하게 접근하려고 한 것이..

[Python] 백준 1920번 수 찾기https://www.acmicpc.net/problem/1920문제코드import sysn = int(sys.stdin.readline())n_list = set(map(int,sys.stdin.readline().split()))m = int(sys.stdin.readline())m_list = list(map(int,sys.stdin.readline().split()))for x in m_list: if x in n_list: print(1) else: print(0)리뷰크게 2가지 풀이 방법이 존재한다.1. 이진 탐색(이분 탐색) 활용2. 집합 자료형 활용1번의 경우 이진 탐색 개념은 알고 있었으나 지금까지 문제를 풀면서 ..

[Python] 백준 1181번 단어 정렬 https://www.acmicpc.net/problem/1181문제코드n = int(input())l = []for i in range(n): l.append(input())l = set(l)l = list(l)l.sort()l.sort(key=len)for x in l: print(x)리뷰for문을 통해 정렬 알고리즘을 여러번 구현하려고 시도했으나 출력은 제대로 나왔지만 계속 시간 초과가 떴다. 다른 사람이 짠 코드를 보니 내가 몰랐던 개념들이 필요했다.1. sort() 함수에서 key라는 인자로 len을 넘겨주면 글자 수 기준으로 정렬해준다.2. sort() 함수의 우선순위를 lambda로 정할 수 있다.다만 람다는 아직 낯설기 때문에 1번을 사..

[Python] 백준 1018번 체스판 다시 칠하기https://www.acmicpc.net/problem/1018문제코드n, m = map(int, input().split())l = []for i in range(n): l.append(list(input()))w_first = []b_first = []for i in range(n): temp_list1 = [] temp_list2 = [] for j in range(m): if (j%2 == 0 and i%2 == 0) or (j%2 != 0 and i%2 != 0): temp_list1.append("W") temp_list2.append("B") else: ..

[Python] 백준 2775번 부녀회장이 될테야https://www.acmicpc.net/problem/2775문제코드t = int(input())for i in range(t): k = int(input()) n = int(input()) l = [] for i in range(n): l.append(i+1) for i in range(0,k): sum = 0 for i in range(len(l)): sum += l[i] l[i] = sum print(l[n-1])리뷰수학적 규칙성을 찾기 위해 그림을 그렸지만, 그냥 중첩 for문을 사용해서 푸는 것이 훨씬 수월해 보였다.리스트 하나를 생성하..

[Python] 백준 2798번 블랙잭https://www.acmicpc.net/problem/2798문제코드n, m = map(int, input().split())l = list(map(int, input().split()))an = []for i in l: for j in l: for k in l: if i != j and j != k and i!= k and i + j + k 리뷰n을 안쓰고 풀어버렸다.당연히 시간 초과가 뜰거라고 생각해서일단 틀릴 마음으로 무작정 코드를 작성했는데시간 초과가 뜨지 않고 정답 처리가 되었다.정석 풀이를 찾아보니 range를 사용하고, max 함수에 두 값을 넣어서 결과를 도출했다.