728x90
반응형

알고리즘 94

[파이썬] 프로그래머스_팩토리얼

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120848 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 제한사항의 n은 10!까지이다. 그렇다고 범위를 1,11로 잡으면 n이 10!일 때 리턴을 하지 못하고 반복문이 끝나기 때문에 1,12로 반복문의 범위를 잡아줬다. 범위를 1,11로 잡고 싶다면 아래처럼 리턴문을 반복문 밖으로 빼버려도 된다. def solution(n): answer = [] mul = 1 for i in range(1, 11): mul *= i if mul

[파이썬] 프로그래머스_문자열 밀기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 데크의 rotate 함수를 사용하면 쉽게 회전시킬 수 있다. 1씩 회전을 시켜주면서 회전 횟수를 저장해주면 된다. 그러다 회전한 데크 A와 데크 B가 같아지면 회전 횟수를 리턴해주면 된다. 끝까지 회전해도 같지 않다면 그 때 -1을 리턴한다. - 다른 사람 풀이 중 데크 안쓰고 푸는 풀이 def solution(A, B): AA = A+A answer = AA.find(B) if an..

[파이썬] 프로그래머스_문자열 정렬하기(1)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120850 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 문자열을 돌며 i가 숫자인지 판별 후 answer 배열에 넣어주면 된다. 파이썬의 isdigit() 함수는 해당 문자가 숫자인지 판별해주기 때문에 이를 사용해 숫자인지 판별하면 된다. 현재 i값은 문자인데 예제의 답은 숫자로 asnwer에 들어가있으므로 int()를 사용해 숫자로 바꿔주면 된다. 그 후 정렬만 하면 쉽게 답을 얻을 수 있다. 코드 -파이썬 def solution(my_..

[파이썬] BOJ_17608(막대기)

문제 https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 해설 가장 뒤의 막대기는 항상 보여지기 때문에 cnt를 1로 초기화 해준다. 뒤부터 비교하면서 더 큰 막대기가 나오면 cnt를 +1해주고 비교값인 stick을 해당 막대기로 바꿔 비교해나간다. 이렇게 해야 큰 막대기 뒤에 가려지는 막대기들을 가려낼 수 있다. 코드 -파이썬 #백준 17608(막대기) import sys input = sys.stdin.readline n = int(input()) ..

알고리즘/백준 2022.11.07

[파이썬] 프로그래머스_2차원으로 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 n 값과 비교할 수 있는 cnt를 선언하고 num_list의 원소를 나눠 담을 수 있는 temp 배열을 선언한다. num_list의 원소 하나씩 temp에 담고, cnt 값을 1씩 증가시켜 n과 cnt 값을 비교할 수 있도록 해준다. cnt가 n과 같아지면 temp를 배열 answer에 넣어주고 temp와 cnt를 초기화 시켜 모든 원소를 담을 수 있도록 반복해주면 된다. 코드 -파이..

[파이썬] 프로그래머스_모스부호(1)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120838 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 문제에서 모스부호를 딕셔너리로 제공하고 있기 때문에 이를 활용하면 쉽게 풀 수 있다. 우선 letter를 공백으로 나눠서 리스트에 저장하고 리스트에서 하나씩 morse 딕셔너리에 있는 value값을 찾아서 join으로 붙여주면 된다. 코드 -파이썬 def solution(letter): morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':..

[파이썬] 프로그래머스_구슬을 나누는 경우의 수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 1) 첫 풀이(시간 초과) itertools의 combinations를 imort해서 combinations(balls, share) 로 풀려고 했는데 combinations는 아래의 코드처럼 balls가 숫자가 아니라 리스트 형태여야 한다. from itertools import combinations nums = [1,2,3,4] combi = list(combinations(nu..

[파이썬] 프로그래머스_외계행성의 나이

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120834 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 이 문제는 age값을 문자열로 변경 후 리스트에 저장한 후, 소문자의 아스키코드 값은 97부터 시작하므로 age의 각 자리에 97을 더한 값을 다시 chr() 함수를 이용해 알파벳으로 바꿔줬다. * age[i]를 int형으로 변경하지 않고 97을 더하면 "문자열 + 숫자"가 되기 때문에 TypeError가 뜬다. 코드 -파이썬 def solution(age): answer = '' a..

728x90
반응형