본문 바로가기

전체 글

(67)
[python] 15. 키패드 누르기(feat. dictionary 활용) 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지 손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 1. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 2. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 3. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 4. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지..
[python] 14. 행렬의 덧셈(feat. zip 함수) 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 - 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예 arr1 arr2 return [[1,2], [2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 나의 코드 def solution(arr1, arr2): answer2 = list() for m in range(len(arr1)): answer1 = list() for n in range(len(arr1[0])): answer..
[python] 13. 두 개 뽑아서 더하기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 - numbers의 길이는 2 이상 100 이하입니다. - numbers의 모든 수는 0 이상 100이하입니다. 입출력 예 numbers result [2, 1, 3, 4, 1] [2, 3, 4, 5, 6, 7] [5, 0, 2, 7] [2, 5, 7, 9, 12] 나의 코드 from itertools import combinations import collections def solution(n): ls = list(combinations(n, 2)) #numbers의 ..
[python] 12. 이상한 문자 만들기(feat. enumerate 함수) 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 - 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. - 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return "try hello world" "TrY HeLIO WoRID" 나의 코드 def solution(s): result = [] for s in s.split(' '): #띄어쓰기를 기준으로 문자를 분리해준다. st = '' for i in rang..
[python] 11. 콜라츠 추측 문제 설명 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 미만인 정수입니다. 입출력 ..
[python] 10. 하샤드 수 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 - x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 연습장 1. str->list를 이용해서 arr를 자릿수로 분리해준다. 2. list->map->int를 이용해서 리스트를 숫자형으로 변환시켜준다. 3. sum으로 리스트의 총합을 구해준다. 4. arr가 num로 나누어 떨어지면 True, 아니면 False로 반환시켜준다..
[디지털 이슈] 스마트 콜센터- 음성본인확인(보이스ID) 1. IBK기업은행 '음성본인확인(보이스ID)' 음성본인확인은 개인이 갖고 있는 100가지 이상 목소리 특징을 모은 정보로 고객을 식별해 상담과 금융거래에 활용할 수 있다. IBK기업은행의 음성본인확인은, 고객이 상담원과 통화하면서 음성정보를 제공하면 은행은 수집된 정보를 통해 다음 통화부터 15초 안에 본인확인을 완료할 수 있다. 언택트(비대면) 서비스 이용을 어려워하는 고령층 등에게도 실질적인 도움이 될 것이며 앞으로도 디지털 소외계층을 배려한 금융 서비스를 확대할 예정이라고 말했다. 2. 자연어 처리 능력 관건 은행권은 금융거래와 상담을 통해 축적한 빅데이터에 신기술을 접목해 '스마트 콜센터'로 연결하고 있다. 음성인식, 더 어려운 화자인식 단계까지 이르면 이른바 '초맞춤형' 상담 서비스가 가능할 ..
[python] 9. 핸드폰 번호 가리기 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 - s는 길이 4이상, 20이하인 문자열입니다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 나의 코드 def solution(phone_number): x = len(phone_number) return '*'*(x-4) + phone_number[x-4:x]