728x90
반응형

알고리즘/프로그래머스 26

[파이썬] 프로그래머스_한 번만 등장한 문자

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120896 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 set으로 s의 중복을 제거한 후 리스트에 넣어줬다. 그리고 그 리스트를 이용해 반복문을 돌면서 s에서 리스트의 각 원소의 개수를 세어 딕셔너리에 넣은 후, value값이 1인 key값만 answer 리스트에 넣어줬다. 사전 순으로 정렬된 값을 요구하고 있기 때문에 오름차순 정렬을 한 후 join을 이용해 문자열로 만들면 된다. 코드 -파이썬 def solution(s): answer..

[파이썬] 프로그래머스_인덱스 바꾸기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120895 해설 num1과 num2의 문자를 바꿔야 해서 temp를 썼는데 그렇게 풀지 않아도 됐다.. 그냥 둘을 바꾸면 된다. def solution(my_string, num1, num2): string = list(my_string) string[num1],string[num2] = string[num2],string[num1] return ''.join(string) 이렇게.. 코드 -파이썬 def solution(my_string, num1, num2): string = list(my_string) temp = string[num1] string[num1] = string[num2] s..

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

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120902 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 split()을 사용하면 공백을 기준으로 문자를 나눠준다. answer에 미리 시작 숫자를 넣어놓고 i값이 연산자일 때만 맞는 계산을 하도록 해주면 답은 쉽게 구할 수 있다. 이렇게 안해도 문자열로 식을 입력하면 해당식을 실행한 결과값을 반환해주는 함수가 있다. def solution(my_string): return eval(my_string) 이렇게 해도 답을 구할 수 있다. 코드..

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

문제 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_..

[파이썬] 프로그래머스_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
반응형