알고리즘 90

[python/2156]포도주 시식

https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고 www.acmicpc.net 이 문제는 점화식을 이용하여 풀면 되는 문제입니다. 문제 풀이를 보시려면 더보기를 클릭하시면 됩니다. 더보기 포도주 시식 이 문제에서..

알고리즘/백준 2020.04.27

[python]Polish alphabet

https://www.codewars.com/kata/57ab2d6072292dbf7c000039/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com 이 문제는 폴란드 알파벳의 분음 부호를 사용하여 글자를 변경하는 것입니다. python에서는 replace를 이용하면 쉽게 문제를 풀 수 있습니다. replace 외에도 maketrans나 st 문자열을 하나씩 나누어서 if 문을 이용하여 문제를 풀 수도 있습니다. ..

[python]Largest 5 digit number in a series

https://www.codewars.com/kata/51675d17e0c1bed195000001/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com 이 문제는 길이가 5 이상인 숫자(예를 들어 12345, 123456 등)를 5개씩 쪼개서 최댓값을 반환하면 되는 문제입니다. 예를 들어서 1234567898765일 경우 아래와 같이 쪼개어볼 수 있습니다. 12345, 23456, 34567, 45678, 56789..

[python]Sudoku Solution Validator

https://www.codewars.com/kata/529bf0e9bdf7657179000008/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com Sudoku Solution Validator 스도쿠는 숫자 퍼즐로 가로 9칸, 세로 9칸으로 이루어져 있는 표에 1부터 9까지의 숫자를 채워 넣는 퍼즐입니다. 퍼즐을 푸는 방법은 같은 줄에는 1에서 9까지의 숫자를 한 번만 넣고, 3x3칸의 작은 격자 또한 1에서 ..

[python]Get Planet Name By ID

https://www.codewars.com/kata/515e188a311df01cba000003/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com python에서는 switch문이 없습니다. switch문 없이 id를 입력받았을 때 다른 값이 출력될 수 있도록 코드를 만들면 됩니다. 간단하게 2가지 방법을 소개해보겠습니다. 1. if와 elif를 사용하는 방법 # 1. if와 elif 사용 def get_pla..

[python/10844]쉬운 계단 수

https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 예시에서 입력이 1이면 즉, N이 1일 경우는 출력이 9이다. 다른 예시를 살펴보면 입력이 2이면 출력이 17이다. 길이가 2인 계단 수는 10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98이다. 이 개수를 1,000,000,000으로 나누면 17이 됩니다. 우선 숫자를 가지고 자릿수를 늘려가면서 가능한 계단 수를 확인해 보겠습니다. 위의 그림을 표로 정리해보면 아래와 같습니다. 숫자|단계 1 2 3 4 5 6 0 1 1 2 3 6 ... 1 ..

알고리즘/백준 2020.04.23

[python]Total amount of points

https://www.codewars.com/kata/5bb904724c47249b10000131/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com Total amount of points x:y 인 형태로 점수가 들어 있는 배열을 입력받아서 x가 y보다 클 경우는 포인트를 3점 더하고 x가 y와 같을 경우는 1을 더한 후 포인트를 되돌려주면 됩니다. 우선적으로 배열 안의 x:y만 출력되도록 만들어보면 아래의 코..

[python/1463]1로 만들기

https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 정수 X를 10이라고 가정하고 위의 3가지 규칙을 적용하면 아래 그림과 같습니다. 이것을 단계별로 나누면 3단계에서 1을 처음 볼 수 있습니다. X를 N이라고 가정하고 단계를 리스트에 저장하는 방법은 아래와 같습니다. lst = [] for i in N: # 규칙 3 lst.append(i - 1) # 규칙 1 if i % 3 == 0: lst.append(i // 3) # 규칙 2 if i % 2 == 0: lst.append(i // 2) 이 리스트에 중복 값이 있을 수 있기 때문에 중복을 제거해 주어야 합..

알고리즘/백준 2020.04.21

[python]Expressions Matter

https://www.codewars.com/kata/5ae62fcf252e66d44d00008e/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com 이 문제는 3가지 주어진 수 및 '(', '+', '*', ')' 이 연산자들을 이용하여 최댓값을 리턴하면 됩니다. 여기서 중요한 것은 3가지 주어진 수는 위치를 바꿀 수 없다는 것입니다. a, b와 c가 1일 경우로 나누어서 문제를 풀었습니다. 하지만 python의..

[python]Abbreviate a Two Word Name

https://www.codewars.com/kata/57eadb7ecd143f4c9c0000a3/train/python Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com Abbreviate a Two Word Name 이 문제는 하나의 공백이 있는 두 단어를 주어 이니셜로 변경하는 문제입니다. 이 이니셜을 연결할 때는 반드시 '.'이 있어야 합니다. 여기서 주의할 점은 입력이 항상 대문자로 주어지지 않을 가능성이 있습니다. 이것을 위..

728x90