전체보기
-
분수의 덧셈코딩 테스트/Level 0 2022. 11. 8. 15:52
https://school.programmers.co.kr/learn/courses/30/lessons/120808 파이썬 gcd (최대공약수) import math def solution(denum1, num1, denum2, num2): denum = denum1 * num2 + denum2 * num1 num = num1 * num2 gcd = math.gcd(denum, num) return denum // gcd, num // gcd 여러 결과들을 동시에 리턴할 때 파이썬은 tuple로 묶어서 전송한다. 프로그래머스의 API는 json을 이용해 답을 확인하기 때문에 튜플과 리스트를 구분하지 않는다. 위 코드도 통과되지만 정확하게 작성하는 것이 좋을 것 같다. fractions(분수) 라이브러리를..
-
안전지대코딩 테스트/Level 0 2022. 11. 8. 15:39
https://school.programmers.co.kr/learn/courses/30/lessons/120866 파이썬 board와 같은 크기의 check 라는 2차원 리스트를 만들었다. def solution(board): check = [[1 for _ in board[0]] for _ in board] for y in range(len(board)): for x in range(len(board[0])): if board[y][x]: for yy in range(y - 1, y + 2): for xx in range(x - 1, x + 2): if 0
-
겹치는 선분의 길이코딩 테스트/Level 0 2022. 11. 8. 15:35
https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 파이썬 선분의 시작점을 +1, 끝점을 -1로 표현했다. 시작점과 끝점들을 graph 딕셔너리로 모았고 모든 선분의 최소점에서 최대점까지 for문으로 탐색하면서 겹치는 선분의 길이를 체크했다. def solution(lines): graph = {} min_graph, max_graph = float('inf'), float('-inf') for line in lines: graph.setdefa..
-
평행코딩 테스트/Level 0 2022. 11. 8. 15:15
https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분수의 덧셈과 유사한 문제. 파이썬 파이썬 built-in 라이브러리를 사용하면 아주 쉽게 풀 수 있다. '평행하다'는 말은 '기울기가 같다'는 말이다. 선분의 기울기는 'y 증가량 / x 증가량'이며 증가량은 A, B의 x 좌표, y 좌표끼리의 뺄셈으로 구할 수 있다. 기울기를 기약분수 형태로 set에 저장하면서 겹침을 체크했다. (지문이 바뀌어 아래의 코드로 통과가 되지 않습니다.) from..
-
옹알이 (1)코딩 테스트/Level 0 2022. 11. 8. 15:13
https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 각각의 단어를 숫자로 변환하고 빠진 문자가 없는지, 같은 단어가 2번 겹치지 않는 지 확인했다. 파이썬 이렇게 코딩해도 통과는 하지만 정답은 아니다. (지문이 바뀌어 아래의 코드도 정답이 됩니다.) def check(text): text = text.replace('aya', '1').replace('ye', '2').replace('woo', '3').replace('ma', '4') if t..
-
연속 부분 수열 합의 개수코딩 테스트/Level 2 2022. 11. 8. 15:07
https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 파이썬 def solution(elements): temp = set() for i in range(len(elements)): new_list = elements[i:] + elements[:i] for j in range(1, len(elements) + 1): temp.add(sum(new_list[:j])) return len(temp)
-
(서브 폴더 포함) 전체 파일 해시 추출Python/이것저것 파이썬 2022. 10. 28. 09:57
[Q] 폴더와 파일 이름과 용량 등을 비교하여 파일 매칭을 해야하는데요. 네트워크로는 공유가 안되고 복사하기엔 용량이 너무 큰 상태입니다. ------------------------------- [A] 각 PC에서, 파일 패스, 파일 사이즈, 해시값을 출력한 뒤 이 값들을 비교하는 게 좋을 것 같습니다. 해시의 원리상 같은 파일일 경우 해시 값은 항상 같습니다. 다른 파일일 경우 해시 값이 같을 확률이 아주 약간 있습니다만, 파일 크기까지 비교한다면 그 확률을 더 줄일 수 있습니다. import os import hashlib def check_dir(path): for root, _, files in os.walk(path): for file in files: joined_path = os.path...