전체보기
-
OX퀴즈코딩 테스트/Level 0 2022. 11. 8. 16:44
https://school.programmers.co.kr/learn/courses/30/lessons/120907 파이썬 문자열의 split 메소드를 이용하자. q.split()은 q.split(' ')과 같다. 기능별로 함수를 분리했다. def test(q): temp = q.split() if temp[1] == '+': return int(temp[0]) + int(temp[2]) == int(temp[4]) else: return int(temp[0]) - int(temp[2]) == int(temp[4]) def solution(quiz): answer = [] for each in quiz: if test(each): answer.append('O') else: answer.append('X..
-
다항식 더하기코딩 테스트/Level 0 2022. 11. 8. 16:36
https://school.programmers.co.kr/learn/courses/30/lessons/120863 코딩테스트는 알고리듬 문제와 구현 문제로 나눌 수 있다, 레벨 0의 구현은 어렵지 않으므로 가독성에 신경 써서 깔끔하게 정리하면 된다. temp 리스트에 x항과 상수항을 각각 분리. 분리된 항의 계수의 합을 구함. 각각의 항을 텍스트로 변환 후 기호를 넣어 병합. 파이썬 def solution(polynomial): coefficients = [0, 0] # 계수들 terms = polynomial.split(' + ') for term in terms: if term[-1] == 'x': # 항의 마지막 글자가 x면 t = term[:-1] # 항의 마지막 글자를 제외한 부분 if t: ..
-
연속된 수의 합코딩 테스트/Level 0 2022. 11. 8. 16:24
https://school.programmers.co.kr/learn/courses/30/lessons/120923 파이썬 num이 홀수일 때, total // num이 가운데 숫자가 되니 쉽게 찾을 수 있고, num이 짝수일 때는 약간의 변형이 필요하다. def solution(num, total): a, b = divmod(total, num) temp = (num - 1) // 2 return [each for each in range(a - temp, a + temp + 1 + (0 if b == 0 else 1))] 수학적으로 접근하면 더 좋다. def solution(num, total): start = total // num - (num - 1) // 2 return [each for eac..
-
분수의 덧셈코딩 테스트/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..