본문 바로가기

알고리즘

(117)
[Python] 예산 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1 def solution(d, budget): d.sort() cnt = 0 for i in d: if i
[Python] 3진법 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n): tri_not = '' while n > 0: tri_not += str(n%3) n = n // 3 answer = int(tri_not, 3) return answer 먼저 n진법을 구할 때는 주어진 수를 n으로 계속 나누다가 몫이 0이 될 때의 나머지부터 역순으로 적어줌. 근데 문제는 3진법으로 바꾼 수를 다시 뒤집어서 10진법으로 출력하는 문제임. 그러면 처음..
[Python] 이상한 문자 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 이상한 문자 만들기 def solution(s): s = s.lower() words = s.split(' ') ans = [] for i in words: if i == ' ': ans.append(i) else: s_w = '' for j in range(len(i)): if j%2==0: s_w += i[j].upper() else: s_w += i[j] ans.append(s_w) an..
[Python] 숫자의 표현 https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 답은 맞았지만 효율성 점수(시간 초과)를 못받음. def solution(n): answer = 1 for i in range(1, n): for j in range(2, n): if ((i+j)*(j-i+1)) / 2 == n and j > i: answer += 1 return answer 중간에 조건을 추가해주니까 통과했음. def solution(n): answer = 1 for i in ..
[Python] 같은 숫자는 싫어 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(arr): answer = [] for i in range(len(arr)): if answer == []: answer.append(arr[i]) elif answer[-1] == arr[i]: continue else: answer.append(arr[i]) return answer
[Python] 이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): c = len(s) zero = 0 # 0 삭제 개수 t_cnt = 0 # transformation 횟수 while s != '1': zero_cnt = s.count('0') # 0의 개수 zero += zero_cnt s = s.replace('0', '') c = len(s) s = str(format(c, 'b')) # 이진수로 변환 t_cnt += 1 an..
[Python] 최솟값 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(A,B): A.sort() B.sort(reverse=True) sum = 0 for a, b in zip(A, B): sum += a * b return sum
[Python] 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이 # 올바른 괄호 # 첫 번째 풀이 def solution(s): if len(s) % 2 != 0: return False elif s[0] == ')' or s[-1] == '(': return False else: error = 0 for i in s: if i == '(': error += 1 else: error -= 1 if error == 0: return True els..