728x90
반응형

분류 전체보기 115

[파이썬] 프로그래머스_문자열 정렬하기(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..

[파이썬] 프로그래머스_진료순서 정하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 새로운 리스트(e_sort)에 내림차순 정렬한 응급도를 저장한 후, emergency 리스트의 i값이 e_sort에서 가지는 인덱스에 +1 한 값을 answer에 넣어주면 된다. 코드 -파이썬 def solution(emergency): answer = [] e_sort = sorted(emergency, reverse=True) for i in emergency: answer.app..

[파이썬] 프로그래머스_최빈값 구하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 딕셔너리를 사용해서 각 숫자의 개수를 저장해두면 풀기 편하다. max value값과 같은 value를 가진 key의 개수만 파악하면 된다. 코드 -파이썬 import operator def solution(array): answer = list(set(array)) # 중복 제거한 array dic = {} for i in answer: dic[i] = array.count(i) #각..

[파이썬] 프로그래머스_시저 암호

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 이 문제는 대문자 / 소문자 / 공백을 따로 처리해줘야 한다. 각 알파벳에 n을 더한 후 알파벳을 구하면 되는데, z / Z를 넘어가면 다시 a / A로 돌아가야 한다. 이는 각 알파벳을 아스키코드로 변경한 후 계산하면 쉽다. 아스키코드 값을 보면 a : 97 - z : 122 A : 65 - Z : 90 이므로 각각 z / Z 값을 넘어가는지 확인해주면 된다. 넘어간다면 알파벳 개수(..

[파이썬] 프로그래머스_자릿수 더하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 각 자릿수를 구하려면 10으로 나눠서 그 나머지값을 보면 된다. 이제 그 다음 자릿수를 구하기 위해선 10으로 나눈 몫을 다시 10으로 나눠주면 된다. 코드 -파이썬 def solution(n): answer = 0 while n > 0: answer += (n % 10) n = n // 10 return answer

728x90
반응형