https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심은 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다 그러면 sort()를 사용하여 진행 A와 B 중에 한쪽은 최소*최대로 곱해야 누적된 값이 최소가 됨 입출력 확인 결과 A.sort B.sort(revers=True) 하고 진행 def solution(A,B): result = 0 A.sort() B.sort(reverse=True) for i in range(len(A)):..
문제 접근 1~n 까지의 합(sum)에 사용된 자연수-> 나올 수 있는 방법의 수를 구하면 됨 코드 def solution(n): answer = 0 for i in range(1, n+1): # 1~n sum = 0 for j in range(i,n+1): # i~n sum += j # n까지 더한다 if sum == n: # n이 되면 answer += 1 # 방벙의 수 + break # 멈춘다 elif sum > n: break return answer #자연수 개수 공식을 이용한 코드(등차수열 합 공식) def expressions(num): return len([i for i in range(1,num+1,2) if num % i is 0]) 해석 예를 들어 n이 3개의 연속된 자연수(i-1, ..
처음에 for문으로 생각함 교차로 비교하면서 반환해줘야 하나 생각함 stack을 사용하면 쉽게 풀 수 있었음 def solution(s): stack =[] for i in range(len(s)): if not stack: stack.append(s[i]) else: if s[i] == stack[-1]: stack.pop() else: stack.append(s[i]) if stack: return 0 else: return 1 먼약 마지막 값이 현재 값과 같으면 pop(): 제거 같다면 push(): 추가
나 def solution(s): s_int = list(map(int, (s.split()))) s_list = [min(s_int), max(s_int)] s_str = " ".join(list(map(str, (s_list)))) return s_str 다른 사람 def solution(s): s = list(map(int, s.split())) return str(min(s)) + ' ' + str(max(s)) 도출 방법은 비슷했지만, 더 간결하게 짤 필요가 있다 - 변수명을 간결하게 사용해라 - 문자형과 문자형을 합칠 때는 '.join()'을 사용하여 합칠 수 있지만 - 도출 결과가 리스트가 아니므로 바로 '+' 로 문자형을 함쳐 return하면 된다.
나 def solution(s): answer = '' s = s.split(' ') for i in range(len(s)): s[i] = s[i].capitalize() return ' '.join(s) 먼저 공백 기준으로 문자열을 입력 받는다 for문으로 앞에 첫 글자만 대문자로 해준다. s[i] =s[i].capitalize() 여기 부분에서 ['a', 'b','c'] 라면 ['A','b','c'] ['A','B','c'] ['A','B','C'] 이렇게 바뀌기 때문에 s[i]로 넣어줬다. ※ 주의 s.split() 으로 자르면 시간 초과된다. s.split(' ')으로 해줘야 한다. 다른 사람 파이썬 내장 라이브러리 함수가 있다.. def Jaden_Case(s): return s.title()..
(python) 완전탐색 문제 파악 길이를 이용하는 문제임: 테두리 1줄은 갈색으로 칠해져 있는 def solution(brown, yellow): total = brown + yellow # brown, yellow의 합이 전체의 카펫 크기 for i in range(total, 1, -1) # total~1까지 -1만큼, 가로의 길이를 찾는다. 노란색의 길이 if total % i == 0: # 나머지가 0이면 a = total // i # 나눈 몫(정수): a if yellow == (i-2)*(a-2): #테두리 한 줄은 갈색이니, 배제시키면 -2(가로), -2(세로) return [i,a] #가로,세로 다른 풀이 1. 완전 탐색 가로 * 세로 = 격자 합, 둘레의 합(가로*2 + 세로*2 - 겹..