본문 바로가기

반응형

문자열

(12)
[백준] 3의 배수(python) 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net TL;DR 구현(Implementation) 문자열(String) 문제 요약 1. 주어진 자연수 X가 3의 배수인지 판정하기 위해서 제안된 "다른 문제로 바꾸어 풀기" 방법을 사용하려고 한다. 2. 다른 문제로 바꾸어 풀기는 다음과 같다. 1. X의 각 자릿수를 더한 수 Y를 만든다. 2. Y가 3의 배수인지 판별한다. 3. 알고 있는 3의 배수가 한 자리 수밖에 없다고 가정하면 Y가 한 자리 수가 나올 때 까지 다른 문제로 바꾸어 풀기를 진행해야 한다. 그 때의 문..
[백준] 방 번호(python) 백준, 방 번호 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net TL;DR 구현(Implementation) 문자열(string) 문제 요약 1. 다솜이의 방 번호를 만들기 위해 필요한 카드 세트의 수를 출력하는 프로그램을 작성해야 한다. 2. 6과 9는 뒤집어서 각각을 사용할 수 있다. - 0 ~ 9까지 있는 카드 세트를 활용하여 다솜이의 방 번호를 만들 때, 필요한 카드 세트의 수를 출력하는 프로그램을 작성하는 문제이다. - 6과 9를 동일하게 취급할 수 있다는 점을 문제 풀이에 활용해야 한다. 입출력 형태 예시 1 :: 9999가 주어졌다. 문제에서 6과 9를 뒤집어서 동일하게 사용할 수 있다고 하였으..
[백준] 단어 나누기(python) 백준, 단어 나누기 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net TL;DR 문자열(string) 완전 탐색(brute force) 문제 요약 1. 알파벳 소문자로 이루어진 단어를 세 개의 작은 단어들로 나누어 합쳤을 때 사전 순으로 가장 앞서는 단어를 출력하는 프로그램을 작성하라. 2. 나눠진 단어들은 적어도 길이가 1 이상이여야 한다. - 입력 받은 문자열을 3개로 나누고 나눈 작은 문자열을 뒤집어서 다시 합쳤을 때 가장 작은 문자열이 오도록 하면 된다. - 입력 문자열의 길이가 3 이상 50 이하로 주어..
[프로그래머스] 튜플(python) Programmers, 튜플 2019년 카카오 개발자 겨울 인턴십 TL;DR 문자열(string) 문제 요약 1. 특정 튜플을 표현하는 집합이 담긴 문자열 s에 대해서 s가 표현하는 튜플을 배열에 담아 반환하는 함수 작성 - 중복된 원소가 없고 순서가 정해져있는 튜플에 대해서 튜플의 원소로 만들 수 있는 부분 집합들이 문자열의 형태로 주어진다. - 주어진 문자열들을 사용하여 본래 튜플을 찾아 반환하는 함수를 작성하면 된다. - 문제의 예시를 살펴보면 문제 해결 방법을 알아낼 수 있다. 입출력 형태 문제에서 설명한 것과 같이 튜플은 원소의 순서 또한 일치해야 동일한 튜플이라고 할 수 있다. 예시 1 :: 주어진 문자열이 {2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}를 나타내고 있고 정답..
[프로그래머스] 이진 변환 반복하기(python) Programmers, 이진 변환 반복하기 TL;DR 문자열(string) 구현(implementation) 문제 요약 1. 0과 1으로 이루어진 문자열에 대해 다음과 같은 이진 변환을 s가 1이 될 때까지 반복한다. 1-1. x의 모든 0을 제거한다. 1-2. 0이 제거된 x의 길이를 c라고 한다면 x를 c를 2진법으로 표현한 문자열로 바꾼다. 2. s가 1이 될때까지 반복된 이진 변환 횟수와 제거된 0의 개수를 반환한다. - 주어진 문자열이 1이 될 때까지 문제에서 요구하는 조건을 반복실행한 결과를 반환하면 된다. - 숫자를 2진법으로 바꾸는 `bin()` 메소드를 사용하여 문제를 풀 수 있다. 입출력 형태 예시 1 :: 예시 1의 문제를 문제에서 주어진 조건으로 해결하면 아래와 같다. 1. 0을 제..
[프로그래머스] 숫자 문자열과 영단어(python) 프로그래머스, 숫자 문자열과 영단어 2021년 카카오 채용연계형 인턴십 TL;DR 문자열(string) 딕셔너리(dictionary) 문제 분석 1. 숫자의 일부 자릿수가 영단어로 바뀌었거나, 혹은 바뀌지 않고 그대로인 문자열 s를 원래 의미하는 숫자로 반환하는 함수를 완성하라. - 입출력 예시를 통해 원하는 답을 확인할 수 있다. 입출력 형태 - 주어진 문자열에 대해 글자로 주어진 문자열을 숫자로 변환하여 결과를 반환하면 된다. 풀이 def solution(s): answer = '' dic = { 'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8'..
[프로그래머스] JadenCase 문자열 만들기(python) 프로그래머스, JadenCase 문자열 만들기 TL;DR 문자열 문제 분석 1. 주어진 문자열 s를 JadenCase로 바꾼 문자열을 리턴하는 함수를 완성하라. 2. s는 길이가 1 이상인 문자열이다. 3. s는 알파벳과 공백문자로 이루어져 있다. 4. 첫 문자가 영문이 아닐때는 이어지는 영문은 소문자로 쓴다. - 1 : 해결해야 하는 문제에 대해서 설명하고 있다. - 2 : 문제에서 주어지는 입력 조건의 제한에 대해서 설명하고 있다. - 3 ~ 4 : 문제를 해결할 때 참고해야 하는 조건에 대해서 설명하고 있다. 입출력 형태 - 주어진 입력을 구성하고 있는 단어들의 첫 번째 글자를 대문자로 바꾼 결과를 반환한다. 풀이 def solution(s): return ' '.join([word.capitali..
[프로그래머스] 최대값과 최소값(python) 프로그래머스, 최대값과 최소값 TL;DR 주어진 문자열을 처리할 수 있는지 문제 분석 1. 공백으로 구분된 숫자들이 저장된 문자열 s에서 최소값과 최대값을 찾아 "(최소값) (최대값)" 형태의 문자열을 반환해야 한다. 2. s에는 둘 이상의 정수가 공백으로 구분되어 있다. - 해결해야 하는 문제와, 조건을 제시하고 있다. 입출력 형태 - 숫자들이 주어진 문자열 s에서 최소값과 최대값을 찾아서 하나의 문자열로 반환하면 된다. 풀이 def solution(s): numbers = sorted([int(i) for i in s.split()]) return str(numbers[0]) + ' ' + str(numbers[-1]) - 주어진 문자열을 공백 문자를 기준으로 나누어, 정수형으로 변환한 후 배열에 담..