Algorithm (71) 썸네일형 리스트형 프로그래머스 / 코딩 테스트 / 정수 내림차순으로 배치하기 문제 설명 문제 해결 정수 n을 각 자리마다 끊어 내림차순으로 정렬한 후, 다시 자릿수에 맞게 결합한 후 반환하면 되는 문제이다. n을 문자열로 변환하고 comprehension 기법을 사용하여 리스트 형태로 다시 재구성한다. sort 함수를 호출하여 내림차순으로 정렬해준다. 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net res에 정렬된 리스트의 숫자를 자리수에 맞게 연산한 결과를 누적하여 반환한다. def solve(n): res = 0 n = str(n) e = [int(x) for x in n] e.sort(reverse=True) for i in range(len(e)): res += e[i] * (10 ** (len(e)-i-1)) return res def solut.. 프로그래머스 / 코딩 테스트 / 자연수 뒤집어 배열로 만들기 문제 설명 문제 해결 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 리스트 형태로 반환하는 함수를 구하면 되는 문제이다. n을 문자열로 만들고 거꾸로 뒤집어준다. [python] 문자열 거꾸로 출력하기 [::-1] 문자열 거꾸로 출력하기 itholic.github.io 그리고 문자들을 다시 숫자로 만들고 리스트를 생성한다. comprehension 기법과 문자열 인덱싱을 응용하면 깔끔하게 코드를 구현할 수 있다. def solve(n): return [int(x) for x in str(n)[::-1]] def solution(n): answer = solve(n) return answer 프로그래머스 / 코딩 테스트 / 자릿수 더하기 문제 설명 문제 해결 각 자리의 숫자를 더한 결과를 반환하는 함수를 구현하면 되는 문제다. 입력된 정수를 문자열로 변환하고 각 문자를 다시 숫자로 변환하여 리스트 형태로 결과를 저장한다. sum 내장함수를 이용하여 리스트의 원소들을 전부 더한 결과를 반환한다. comprehension과 sum 함수를 사용하면 깔끔하게 코드를 구현할 수 있다. def solve(n): return sum([int(ch) for ch in str(n)]) def solution(n): answer = solve(n) return answer 프로그래머스 / 코딩 테스트 / 이상한 문자 만들기 문제 설명 문제 해결 split 함수를 이용하여 공백을 기준으로 단어들을 끊어서 리스트 형태로 만들어준다. 변환한 문자열을 임시로 저장해줄 변수를 만들고 연산을 진행한 후, 연산 결과를 다시 리스트에 저장해주면 된다. 결과를 반환할 때는 join 함수를 써서 리스트를 다시 문자열 형태로 바꿔주면 된다. def solve(s): words = s.split(' ') for i in range(len(words)): temp = '' for j in range(len(words[i])): if j % 2 == 0: temp += words[i][j].upper() elif j % 2 == 1: temp += words[i][j].lower() words[i] = temp return " ".join(word.. 프로그래머스 / 코딩 테스트 / 약수의 합 문제 설명 문제 해결 약수의 합을 구해 반환해주는 함수를 만들면 되는 문제이다. Comprehension 기법과 내장 함수 sum을 이용하면 코드의 길이를 줄일 수 있다. 간단하게 n을 1부터 n까지 나눠서 나오는 나머지가 0인지 검증하는 형태로 코드를 작성했다. def solve(n): return sum([i for i in range(1,n+1) if n % i == 0]) def solution(n): answer = solve(n) return answer 프로그래머스 / 코딩 테스트 / 내적 문제 설명 문제 해결 두 리스트의 원소들을 내적한 결과를 반환하는 함수를 구현하면 되는 문제이다. zip 내장 함수를 이용하면 좀 더 코드를 깔끔하게 구현할 수 있다. 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net def solve(a,b): res = 0 for i, j in zip(a,b): res += i * j return res def solution(a, b): answer = solve(a,b) return answer 다른 사람의 문제 해결 Comprehension 기법을 사용하여 두 리스트의 원소들을 곱한 리스트를 새로 생성했다. 파이썬의 Comprehension 소개 Comprehension이란 iterable한 오브젝트를 생성하기 위한 방법중 하나로 파이썬에.. 프로그래머스 / 코딩 테스트 / 시저 암호 문제 설명 문제 해결 시저 암호를 구현하면 되는 문제이다. 대문자, 소문자, 공백이 문자열에 섞일 수 있다는 것을 생각하고 코딩하면 어렵지 않다. string 라이브러리에서 ascii_lowercase, ascii_uppercase 상수를 이용한다. string — 일반적인 문자열 연산 — Python 3.9.1 문서 string — 일반적인 문자열 연산 소스 코드: Lib/string.py 문자열 상수 이 모듈에 정의된 상수는 다음과 같습니다: string.ascii_letters 아래에 나오는 ascii_lowercase와 ascii_uppercase 상수를 이어붙인 것입니다 docs.python.org 상수들을 tuple 형태의 데이터로 저장한 후, 각 문자에 해당하는 tuple의 index를 찾고.. 프로그래머스 / 코딩 테스트 / 문자열을 정수로 바꾸기 문제 설명 문제 해결 이미 파이썬에는 문자열을 정수로 바꾸는 함수가 존재한다. def solve(s): return int(s) def solution(s): answer = solve(s) return answer 물론 직접 구현하는 방법도 존재한다. 맨앞에 부호가 존재할 수도 안 존재할 수도 있다. (1234, -1234, +1234) 해당 사항만 유의하고 문제를 풀면 쉽게 풀 수 있다. def solve(s): res = 0 sign = 1 start = 0 if s[0] == '+' or s[0] == '-': sign = -1 if s[0] == '-' else 1 start = 1 for i in range(start, len(s)): res += (ord(s[i]) - 48) * (10**(.. 프로그래머스 / 코딩 테스트 / 수박수박수박수박수박수? 문제 설명 문제 해결 특정 패턴의 문자열을 주어진 길이만큼 생성하여 반환해야되는 문제이다. tuple에 '수', '박' 문자를 담고 반복문을 이용하여 반복적으로 반환된 문자열에 문자들을 더해줬다. def solve(n): res = "" t = ('수','박') for i in range(n): res += t[i%2] return res def solution(n): answer = solve(n) return answer 다른 사람의 풀이 소개 Python에서는 문자열을 곱연산을 할 수 있었다. (사용한 기억이 없어서 까먹고 있었다.) 문자열을 곱연산한 결과에 원하는 길이만큼 자르면 된다. 내 코드보다 엄청 깔끔하고 논리적이다. # 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되.. 프로그래머스 / 코딩 테스트 / 두 개 뽑아서 더하기 문제 설명 문제 해결 이중 반복문과 집합 자료형의 특징을 이용하면 쉽게 풀 수 있다고 판단했다. (중복을 허용하지 않는 특징) 각 반복문마다 어떤 원소와 원소를 더해야하는지 색깔로 표기해봤다. 서로 다른 인덱스를 더해서 집합에 연산한 결과를 추가하도록 만들었다. 반환 값을 list 형태로 오름차순 정렬하여 반환해야 된다는 사항만 잊지 않으면 된다. def solve(numbers): res = set() for i in range(len(numbers)): for j in range(i+1, len(numbers)): res.add(numbers[i] + numbers[j]) res = list(res) res.sort() return res def solution(numbers): answer = so.. 이전 1 ··· 4 5 6 7 8 다음