본문 바로가기

반응형

분류 전체보기

(87)
[Python] 프로그래머스 체육복 파이썬 코드 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
[Python] 프로그래머스 핸드폰 번호 가리기 파이썬 코드 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 💡 나의 풀이 def solution(phone): num_lst = list(phone) num_lst.reverse() for i in range(4,len(num_lst)): num_lst[i] = "*" num_lst.reverse() return "".join(num_lst) num_lst에 문자열 phone을 list로 변환하여 담는다 생성된 num_lst..
[Python] 프로그래머스 콜라츠 추측 파이썬 코드 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 입출력 예 n res..
[Python] win32com.client 설치하는 방법 Window 10 ver. 📌 win32com ? win32com은 pywin32 이라고도 하며, 윈도우 상에서 Python을 이용하여 ActiveX 함수를 호출할 수 있도록 도와주는 역할을 한다. COM(Component Object Model)은 마이크로소프트에서 만들었으며, 다른 언어들을 python으로 변환해주는 것이라 생각하면 된다. 파이썬에서 다른 프로그래밍 언어로 작성된 COM 객체를 생성하려면 win32com.client라는 모듈의 Dispatch 메소드를 사용하면 된다. 예를 들어 마이크로소프트의 엑셀에 대한 객체를 생성하려면 다음과 같이 구현한다. import win32com.client excel = win32com.client.Dispatch("Excel.Application") excel.Visible = ..
[Python] 프로그래머스 제일 작은 수 제거하기 파이썬 코드 문제 설명 정수를 저장한 배열, 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): answer = [] minVal = min(arr) arr.remove(minVal) if not arr: arr.insert(0,-1) return arr arr 배열에서 가장 작은 수를 찾는 함수 min()을 사용하여 minVal..
[Python] 프로그래머스 하샤드 수 파이썬 코드 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 💡 나의 풀이 def solution(x): arr = list(str(x)) sum_ = 0 for i in range(len(arr)): sum_ += int(arr[i]) if x % sum_ == 0: answer = True else: answer = False return answer 자연수 x를 string으로 치환하여 list 형식으로 arr에 담았다..
[Python] 프로그래머스 시저암호 파이썬 코드 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 💡 나의 풀이 처음엔 비트연산자인 shift 방식으로 생각했었다. 시도했다가 아닌 것 같아서 아스키코드로 치환해서 풀어야겠다고 생각했다. 문자열을 아스키코드 값으로 변환해주는 ord(string)을 사용..
[Python] 프로그래머스 완주하지 못한 선수 Level 1. 파이썬 코드 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 💡 나의 풀이 처음엔 for문을 p,c 둘다 돌려서 p에서 c를 빼려고 했는데 파이썬다..

반응형