본문 바로가기

전체 글

(123)
[프로그래머스] 숫자 야구 -파이썬 이 문제 푸는 것만 두시간 내내 걸렸다... 어려워...ㅠㅜㅠㅜ흑흑 능력은 찬찬히 늘려 가는게 중요하지.. ㅠㅠ import itertools def solution(baseball): answer = 0 # 그냥 1부터 9까지 다 돌리면 pool = ['1', '2', '3','4','5','6','7','8','9'] num_list = list(map(''.join, itertools.permutations(pool, 3))) for i in baseball : for j in num_list[:]: if not(sb(j,i)): num_list.remove(j) print(len(num_list)) return len(num_list) 우선 위의 코드는 먼저 num_list라고 숫자 3개로 만들 ..
[프로그래머스/코딩테스트 연습] 완전탐색 소수 찾기 이것도 어렵게 풀어낸 문제이다.. 어떻게 조합을 만들고, 여기서 또 소수를 찾을지 고민을 많이 했다... 우선 이전에 다른 프로그래머스에서 소수를 판별하는 에라토스테네스의 체를 구현 해 둔 것이 있어서 그것을 이용하였다. 소수를 판별해 내는 방법은 구현해 두었으니 이것을 이용해 수를 만드는 방법을 이용하였다. 여기서는 쓴 방법은 numbers 로 주어진 문자열에서 만들 수 있는 가장 큰 수 max를 만들고 max보다 작은 수 소수 i를 문자열 단위로 구성된 pn으로 나누고, pn을 구성하는 문자들이 num으로 구성할 수 있는 값인지를 확인하였다.. 이렇게 쓴 과정으로 우선적으로 구현은 하여 두었지만, 다른 사람의 풀이를 보니 더 편한 방법이 있더라.. 숫자 조합을 쉽게 python에서 구현하는 라이브러리..
[프로그래머스/코딩테스트 연습] 괄호 변환 문제는 정말 써진 그대로만 풀면 되는 문제이다. 하지만 이게 이해하는데 애를 먹었다... ㅠㅜ 그대로 따라하기가 도데체 어떻게 하라는 건지 어려움을 겪었다. 우선 '균형잡힌 괄호 문자열' 과 '올바른 괄호 문자열'로 나누어 판단이 되는데 이걸 위해서 함수를 두개 선언해 주었다. 그리고 찬찬히 방법을 따라 갔다. 우선 처음에 u,v를 나누는 기준부터 이해가 잘 안갔는데, u는 더 이상 균형잡힌 문자열로 다시 나누어 질 수 없으므ㄴ로, 최소한의 균형잡힌 문자열로 하기 위해서 2개씩 끊어서 검사하였다. 이것만 제대로 해결하면 될 줄알았는데, u,v 자체가 순서가 계속 햇갈려서 틀려왔다...ㅋㅋㅋ 처음에는 return을 '('+rl(u)+')'+v로 하고 그랬다가 틀려서 한참 고민했다.. 차근 차근 따라 가면 ..
[프로그래머스/코딩테스트 연습] [3차] 파일명 정리 파일명을 head, number, tail로 정리하는 문제인데 나는 아주 어렵게 풀었다.. 그리고 이후 다른사람의 풀이를 보고 한숨.. 저걸 왜 생각을 못해찌...아니 근데 어렵기도 어렵다.. ㅎ.. 내가 푼 풀이만 첨부한다..
[프로그래머스/코딩테스트 연습 ] [3차] n진수 게임 def solution(n, t, m, p): number = '0123456789ABCDEF' answer = '' num = number[:n] i = 0 # 진행 할 수 an = '0' #진행되는 동안 n진수의 수열 while len(an) 0 : q,r = divmod(q,n) a= num[r]+a #n진수이므로 r번쨰 값을 넣어준다. an+=a # 마지막에는 최중 n진수 수열에 붙여준다. i+=1 # i는 점점 커지면서 for i in range(t): answer+=an[p+(i*m)-1] return answer 이 문제를 어떻게 해야 효율적으로 풀 수 있을까 고민을 했는데..
블루투스 마우스 연결 끊김 문제 해결하기 현재 내가 해보고 성공한 방법을 쓰는 것이다. 모든 문제를 해결시키지는 않는다. 현재 사용하고 있는 버전은 Windows10이다. 지금까지 계속 사용하고 가만히 두면 연결이 끊어지는 문제가 발생해서 사용에 애를 먹고 있었다. 방법 먼저 블루투스 설정 창을 켠다. 스크롤을 아래로 내려보면 추가 Bluetooth 옵션이 있는데, 계속 이 부분이 꺼져 있어서 서로 연결이 되지 않았던 것이다. 체크를 해 보니 연결이 잘 되는 것을 확인할 수 있었다. 블루투스 마우스가 지연도 있고 감도도 좋지 않아 번거롭기는 한데, 부피차지가 적고... 사실 이 마우스 취업설명회가서 받아서 유용하게 사용중이다.. usb 포트도 노트북에 두개 뿐인데 둘 다 쓸수 있어서 유용하다...
[프로그래머스/코딩테스트 연습] 쇠막대기 쇠막대기 문제는 문제로 보면 그림이 나오고 해서 복잡해 보이나 풀이 과정은 간단하다. 문제만 이해하면 기본 while문으로 쉽게 풀 수 있다. 더보기 def solution(arrangement): i = 0 answer =0 s = 0 while i
[프로그래머스/코딩테스트 연습] 멀쩡한 사각형 1차 풀이... 틀렸다고 나왔다. 시간 초과는 다른 방법을 알아보고, 먼저 6번이 틀린 이유를 찾아보았다. 이유는 h/w가 더블형태라 python에서 저장될때 오차가 발생하기 때문이었다. 따라서 다른 방법을 찾아서 시도해보기로 했다. 찾은 방법은 최소공약수를 이용하는 방법이었다. 최소공배수로 두 수를 모두 나눌 경우 자연수가 나오기 때문에 이를 기준으로 계산할 경우 쉽게 계산할 수 있다. 그림으로 표현하면 쉬운데, 그 자연수를 지나는 경우 지나는 블럭은 w/a + h/a -1이 된다. 이를 이용하면 쉽게 풀 수 있다.