본문 바로가기

Problem Solving

(26)
[프로그래머스] Level 2 JadenCase 문자열 만들기 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백 문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 ) 입출력 예 문제 풀이 def solution(s): s = s.split(' ') l = [] for i in range(len(s)): if len(s[i]) >= 1: l.append(s[i][0].upper()) l.append(s[i][1:].lower()+' ') if l[-1] ==..
[BOJ/백준] 10809번 알파벳 찾기 | 문자열 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 문제 풀이 s = input() a = list(range(97,123)) for i in range(len(a)..
[프로그래머스] Level 1 자릿수 더하기/이상한 문자 만들기/약수의 합 자릿수 더하기.py 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 문제 풀이 def solution(n): l = list(map(int, str(n))) return sum(l) n을 문자열로 바꾼 후 map함수를 사용해 각 자릿수를 int형으로 바꿨다. 이를 리스트로 만들어 l로 정의했다. sum함수를 사용해 리스트의 합을 출력했다. 한 줄 출력도 가능가능❗ def solution(n): return sum(list(map(int, str(n)))) 이상한 문자 만들기.py 문제 설명 1)..
[BOJ/백준] 1065번 한수 | 함수 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 문제 풀이 def x(n): if n
[프로그래머스] Level 1 제일 작은 수 제거하기/정수 제곱근 판별/정수 내림차순으로 배치하기/자연수 뒤집어 배열로 만들기 제일 작은 수 제거하기.py 문제 설명 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를 들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴하고, [10] 면 [-1]을 리턴합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 문제 풀이 def solution(arr): if len(arr) == 1: return [-1] arr.remove(min(arr)) return arr 만약 arr의 길이가 1이면 배열에 -1을 채워 반환한다. arr의 최솟값을 min 함수로 찾고 re..
[BOJ/백준] 4673번 셀프 넘버 | 함수 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자릿수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한수열을 만들 수 있다. n을 d(n)의 생성자라고 한다. 생성자가 없는 숫자를 셀프 넘버라고 한다. 100보다 작은 셀프 넘버는 총 13개가 있다. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97 10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 입력 입력은 없다. 출력 10,000보다 작거나 같은 ..
[BOJ/백준] 4344번 평균은 넘겠지 | 1차원 배열 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 문제 풀이 n = int(input()) while n: case = list(map(int, input().split())) avg = (sum(case) - case[0])/case[0] num = 0 for i in range(ca..
[프로그래머스] Level 1 짝수와 홀수/최대공약수와 최소공배수/콜라츠 추측/하샤드 수 짝수와 홀수.py 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 문제풀이 def solution(num): return "Even" if num % 2 == 0 else "Odd" 함수 반환 값에 if문을 넣어 작성했다. 최대공약수와 최소공배수. py 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해..