문제 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 내장함수를 사용하지 않고 직접 2진수를 구현했다. import math def cal(n): global zero, cnt data = list(n) arr = [] # 0이 제거된 배열 # 0 제거 for i in data: if i != '0': arr.append(i) else: zero += 1 if arr == ['1']: return '1' # 숫자 변환 new_arr =..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 처음엔 든 생각은 재귀 또는 2중 for문이었으나 설계가 잘 되지 않았다. - 결국 A는 sort, B는 reverse sort 하는 방법을 사용했다. def solution(A, B): A.sort() B.sort(reverse=1) answer = 0 for i in range(len(A)): answer += A[i] * B[i] return answer
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 파싱 def solution(s): low_s = s.lower() answer = "" answer += low_s[0].upper() # 첫글자는 무조건 대문자 for i in range(1, len(low_s)): if low_s[i-1] == " ": answer += low_s[i].upper() else: answer += low_s[i] return answer
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 파싱 def solution(s): arr = [] number = "" for i in range(len(s)): if s[i] != " ": number += s[i] else: arr.append(int(number)) number = "" # 마지막 남은 숫자를 추가해준다. arr.append(int(number)) answer = str(min..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 소수판별시 시간초과 방지를 위해 루트를 활용하는 방법을 사용했다. Math.sqrt(num)를 이용하여 소수판별 활용 // 소수 판별 함수 function isPrime(num) { if (num === 2) { return true; } for (let i = 2; i = k) { number.push(n % k); n = parseInt(n / k); } // 나머지가 0보다 크..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - bucket 활용 - 00분에 입차할 경우 정확한 시간을 측정하기 위해 car 초기 값을 -1로 설정 - 올림을 위해 math.ceil() 사용 # fees = [기본 시간(분), 기본 요금(원), 단위 시간(분), 단위 요금(원)] import math def solution(fees, records): car = [-1] * 10000 time = ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 시간복잡도가 중요한 문제이다. - deque를 사용하지 않으면 시간초과에 걸린다. - sum을 사용하여 풀었지만 시간복잡도에 걸려 sum값에 +, -로 합계를 조정해 주었다. - 큐의 길이 *3 보다 많이 계산할 경우 -1을 반환한다. from collections import deque def solution(queue1, queue2): queue..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - BFS 문제 def solution(maps): N = len(maps) M = len(maps[0]) q = [(0, 0, 1)] visit = [[0] * M for _ in range(N)] # N, M 헷갈림 주의 visit[0][0] = 1 answer = -1 while q: x, y, cnt = q.pop(0) if x == (N-1) and y == (M-1): # 최종..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - MBTI 유형 검사와 같은 내용 - hash map을 사용하여 점수 기입, 결과 출력 python def solution(survey, choices): answer = '' score = {'R': 0, 'T': 0, 'C': 0, 'F': 0, 'J': 0, 'M': 0, 'A': 0, 'N': 0} # 입력값 비교 for i in range(len(survey)): if ch..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17681?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - bin 함수를 유용하게 사용했다. - map1과 map2를 생성하는 코드가 같아 하나로 묶고 싶었다. # 처음 제출 코드 def solution(n, arr1, arr2): map1, map2 = [], [] # map1 생성 for i in range(n): data = list(bin(arr1[i])) # ex) 0b10100 data.pop(0) ..