목록Python (280)
jyamethyst21 님의 블로그
문제: 문자열이 주어질 때, 해당 문자열에 존재하는 알파벳 모음을 전부 제거하고 출력하는 문제이다. 풀이:def solution(my_string): li = ['a', 'e', 'i', 'o', 'u'] result = '' for i in my_string: if i not in li: result += i return result제거할 리스트를 li에 저장하고 정답을 저장할 result 변수를 선언하였다.이후 반복문을 통해 입력받은 문자열을 전부 한 개씩 확인하여서, 제거할 리스트와 비교하였다.제거할 리스트에 해당 알파벳이 존재하지 않는 경우 이는 제거하지 않아도 되는 문자이므로 결과 변수인 result에 해당 값을 추가하고 최종적으로 이 변수를..
문제: n을 입력받고, 1부터 n까지 곱을 했을 때 그 값이 n이 되는 순서쌍의 개수를 리턴하는 문제이다. 풀이:def solution(n): li = set() for i in range(1, n+1): for j in range(1, n+1): if i*j == n: li.add((i,j)) return len(li)처음 필자가 작성했던 코드는 상기와 같다. 중복을 방지해주기 위하여 set 함수를 활용하고, 이중 반복문을 통해 각 수의 곱셈을 진행하여 li에 추가하였다. li는 중복이 방지가 되었기 때문에 그대로 리턴해주면 완료된다.하지만 이 코드는 시간 초과가 발생해서 통과가 되지 않았다. def solution(n): ..
문제: 배열을 입력받고, num1부터 num2까지 입력받은 인덱스만큼 잘라서 리턴하는 문제이다. 풀이:def solution(numbers, num1, num2): return numbers[num1:num2+1]numbers 배열에 num1부터 num2까지의 인덱스를 출력하도록 그대로 리턴하면 된다.인덱싱을 할 때, 끝나는 기준에서 +1을 해주어야 입력값 그대로 출력되므로 [num1:num2+1]로 처리를 해주어야 한다.
문제: my_string 문자열에 letter에 해당하는 영어가 포함되어 있다면, 지운 뒤 해당 문자열을 반환하는 문제이다. 풀이:def solution(my_string, letter): return my_string.replace(letter, '')파이썬에 아주 간단한 함수인 replace를 통해서 해결할 수 있다.replace 함수는 '바꿀 문자열, 어떻게 바꿀지'를 매개변수에 넣어서 활용하면 된다. 해당 문제에서는 letter가 my_string에 포함되어 있다면 ''으로 치환하는 문제이므로 상기와 같이 작성하였다.
문제: 문자열과 반복 횟수 n을 입력받고, 해당 문자열의 각 자리에 해당하는 문자를 n만큼 반복해서 출력하는 문제이다. 풀이:def solution(my_string, n): li = '' for i in my_string: li += i*n return li입력받은 문자열을 반복문을 통해 한 개씩 돌면서, 각 자릿수에 해당하는 문자에 n을 곱한 값(반복할 횟수)을 리턴할 li 변수에 추가한다.그리고 최종적으로 li 변수를 return하면 된다.
문제: 피자 조각 수인 slice와 사람 수 n을 입력받을 때, n명의 사람이 최소 한 조각 이상의 피자를 먹으려면 몇 판의 피자를 시켜야 하는지 리턴하는 문제이다.예를 들어, slice가 7, n이 10일 때 10명의 사람이 각각 한 조각씩 먹기 위해서는 2판의 피자가 필요하다. (한 판당 7조각이므로) 풀이:def solution(slice, n): if n % slice == 0: return n // slice else: return (n // slice) + 1사람 수를 조각 수로 나눈 나머지가 0인 경우는 한 판으로 모든 인원이 최소 한 조각씩 먹을 수 있는 양이기 때문에 n을 slice로 나눈 몫을 그대로 리턴하도록 하고, 그렇지 않다면 n을 slice로 ..
문제: 정수를 확인해서 짝수일 경우 Even을, 홀수일 경우 Odd를 리턴하는 함수를 만드는 문제이다. 풀이:def solution(num): if num % 2 == 0: return 'Even' else: return 'Odd'쉬어가는 문제로, 짝홀수 판별 문제를 풀었다.2로 나눈 나머지가 0인 경우 짝수를 의미하기 때문에 'Even'을, 그렇지 않은 경우 'Odd'를 출력하는 로직이다.예를 들어, num이 10인 경우 10%2는 0(몫은 5)이기 때문에 Even을, num이 11인 경우 나머지가 1이기 때문에 Odd를 출력한다.
문제: 숫자 모양의 문자열을 (예시: '1234') 입력받고, 이를 숫자형으로 반환하는 문제이다. 즉, str 형태를 int 형태로 변환하라는 의미이다. 풀이:def solution(s): s = int(s) return sint 함수는 주어진 문자열을 int 형태로 변환해주고 '-'가 붙든, '+'가 붙든 있는 그대로 받아들인다.그렇기 때문에 값을 그대로 그냥 int 함수 안에만 넣으면 문제에서 원하는 바를 출력할 수 있다.
문제: 시작 숫자이자 증감 숫자인 x와 개수 파라미터인 n을 입력받는다. 이후 x로 시작하는 수 중 n개만큼 리스트로 받아서 리턴해주는 문제이다. 풀이:def solution(x, n): li = [] for i in range(1, n + 1): li.append(x * i) return lili라는 리스트를 초기화하고 반복문을 돈다. 이후 n개의 개수만큼 리스트에 값을 추가해야 하기 때문에 1부터 n+1까지 반복문을 돌고, 이때 추가할 값은 x*i이다. 2부터 시작하고 n이 3이라면 2,4,6이 리스트에 추가되고 해당 리스트를 반환하는 로직이다.
문제: 입력받은 값의 각 자릿수를 분리해서 그 값에 대해 내림차순 정렬을 한 뒤, 반환하는 문제이다. 풀이:def solution(n): N = str(n) result = [] for i in N[::-1]: result.append(int(i)) return result입력받은 숫자를 문자열로 변환하고, 새로운 리스트인 result를 초기화한다. 문자열로 변환하는 이유는 반복 가능한 개체로 변환하여 반복문에서 활용하기 위함이다.이후 슬라이싱을 통해 순서를 반대로 돌리고, 이를 숫자로 변환한 뒤 리스트인 result에 그대로 추가하였다. 그리고 최종적으로 값이 추가된 result를 리턴하는 로직이다.
