sally_analyst의 등록된 링크

키자드에 등록된 총 161개의 포스트를 확인하실 수 있습니다.

Naver Blog

[코딩테스트] 프로그래머스 - 올바른 괄호 (Lv.2)

문제는 프로그래머스 코딩테스트 Lv.2에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 올바른 괄호 [QUESTION] 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. [내 코드] def solution(s): stack = [] for i in s: if i == '(': sta

Naver Blog

[코딩테스트] 프로그래머스 - 최솟값 만들기 (Lv.2)

제는 프로그래머스 코딩테스트 Lv.2에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 최솟값 만들기 [QUESTION] 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 :

Naver Blog

[어학 자격증] 12시간 공부하고 Mastery 획득한 G-TELP LV.2

G-TELP란? G-TELP (General Tests of English Language Proficiency)의 약자로 국제테스트 연구원 (ITSC, International Testing Services Center)에서 주관하는 글로벌 영어능력 평가인증시험입니다. 일반적인 시험 구성은 PBT(Paper-Based Test)로 문법/ 독해/ 청취를 평가하는 G-TELP Level Test, 말하기 시험인 G-TELP Speaking Test, 작문 시험인 G-TELP Writing Test로 구성되어 있습니다. 저는 G-TELP Level Test에 응시했고, 이 시험 관련 내용으로 포스팅 작성하도록 할게요:) Level별 시험 구성 및 점수 활용처 출처: 지텔프 홈페이지 (23.04.10 자료) 저는 지텔프 Level 2에 응시하였고, 점수 활용처는 다음과 같습니다:) 국가고시 (공무원, 군무원, 소방, 경찰 등) 공무원 해외파견 국가자격증(변리사, 회계사, 감정평가사, 세무

Naver Blog

[코딩테스트] 프로그래머스 - 과일 장수 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 과일 장수 [QUESTION] 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자

Naver Blog

[코딩테스트] 프로그래머스 - 로또의 최고 순위와 최저 순위 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 로또의 최고 순위와 최저 순위 [QUESTION] 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최저 순위

Naver Blog

[코딩테스트] 프로그래머스 - 숫자 짝꿍 (Lv.1)

문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 숫자 짝꿍 [QUESTION] 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에

Naver Blog

[코딩테스트] 프로그래머스 - 기사단원의 무기 (Lv.1)

문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 기사단원의 무기 [QUESTION] 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단

Naver Blog

[알고리즘] 탐욕 알고리즘 (Greedy Algorithm)

탐욕 알고리즘(Greedy Algorithm)이란? 탐욕 알고리즘 : 선택의 순간마다 당장 눈에 보이는 최적의 상황만을 쫓아 최종 해답에 도달하는 방법 순간마다 하는 선택은 작게 보아 최적이지만, 그 선택들을 수집하여 도달한 최종 해답이 최적이라는 보장은 없다. 아래의 예시와 같이, 루트 노드부터 시작해서 거치는 노드의 값의 합을 최대로 하는 문제가 있을 때 [case 1] 초록색과 같이 완전 탐색을 통해 노드의 값이 가장 큰 선택을 하는 경우 (5 - 7 - 9) [case 2] 파란색과 같이 탐욕 알고리즘을 통해 매순간 최적의 해만 고르는 경우 (5 - 9 - 3) 탐욕 알고리즘이 항상 최적의 해를 보장하지는 않는다는 것을 확인할 수 있습니다. 탐욕 알고리즘을 사용하는 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황을 제공합니다. '가장 큰 순서대로' '가장 작은 순서대로' 탐욕 알고리즘(Greedy Algorithm) 문제 해결법 선택 절차 : 현재 상태에서 최적의 해답 선

Naver Blog

[코딩테스트] 프로그래머스 - JadenCase 문자열 만들기 (Lv.2)

문제는 프로그래머스 코딩테스트 Lv.2에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. JadenCase 문자열 만들기 [QUESTION] JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. s는 길이 1 이상 200 이하인 문자열입니다. s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다. 숫자는 단어의 첫 문자로만 나옵니다. 숫자로만 이루어진 단어는 없습니다. 공백문자가 연속해서 나올 수 있습니다. [내 코드] def solution(s): answer = '' for i in s.lower().split(' '): if answer ==

Naver Blog

[코딩테스트] 프로그래머스 - 폰켓몬 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 폰켓몬 [QUESTION] 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번

Naver Blog

[코딩테스트] 프로그래머스 - 소수 찾기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 소수 찾기 [QUESTION] 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) n은 2이상 1000000이하의 자연수입니다. 소수를 구하기 위해 알아야 할 [에라토스테네스의 체] 1] 2부터 n까지 모든 수를 나열한다. 2] 2를 제외한 2의 배수를 모두 지운다. 3] 3을 제외한 3의 배수를 모두 지운다. 4] 5를 제외한 5의 배수를 모두 지운다. 5] 위 과정을 반복하면 구하는 구간의 모든 소수만 남는다. [내 코드] def solution(n): array = [True] * (n+1) m = int(n**0.5) for i in range(2, m+

Naver Blog

[코딩테스트] 프로그래머스 - 모의고사 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 모의고사 [QUESTION] 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도

Naver Blog

[코딩테스트] 파이썬 QUIZ - 함수 선언 def (2)

스물한번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : D 오늘 퀴즈는 난이도가 낮은 쉬어가는 코너라고 생각해주셔도 될 것 같아요:) >>> def func(num): >>> return num*2 >>> answer = func(2) # answer = 2*2 = 4 >>> answer = func(answer) # answer = 4*2 = 8 >>> answer = func(answer) # answer = 8*2 = 16 >>> print(answer) 16 과정은 주석을 참고해주세요:) 다음에는 이러한 반복 과정을 줄일 수 있는 퀴즈를 만들어 제공하도록 하겠습니다!

Naver Blog

[데이터 자격증] 3일 만에 합격하는 ADsP (데이터분석준전문가)

안녕하세요:) 데이터 다루는 샐리입니다~ 이번 포스팅은 2023.02.26 일요일에 응시한 제 36회 데이터분석 준전문가 자격증 공부 방법 및 합격 후기입니다! 저는 기본적으로 R은 다뤄보지 않은 상태, Python과 SQL로 데이터분석을 하는 비전공자이고 시험 3일 전부터 퇴근 후 3-4시간 공부하고 합격했습니다:) (2023.03.17 가채점 발표 점수 기준) 늘 말씀 드리는 것처럼.. 3일 만에 쉽게 딸 수 있는 시험입니다~가 절대 아니에요! 공부하기 어렵고 외울 것도 많지만 포기하지 마시고 할 수 있다고 응원 및 정보를 드리는 포스팅이랍니다 ADsP 자격증 개요 ADsP (Advanced Data Analytics Semi-Professional_데이터분석 준전문가)란 데이터 이해에 대한 기본지식을 바탕으로 데이터분석 기획 및 데이터분석 등의 직무를 수행하는 실무자를 뜻하며, 그 능력을 증명하는 자격증이라고 생각하시면 됩니다. 이 자격증 취득을 위한 시험은 민간 자격시험입니다

Naver Blog

[코딩테스트] 파이썬 QUIZ - float 계산 (부동소수점 오차)

스물두번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : B 오늘 퀴즈는 쉬워보이지만 오답률이 높을만한 문제입니다:) 파이썬에서 실수형 값을 다룰 때 흔히 마주칠 수 있는 부동소수점 오차 공부할게요. >>> 0.1 + 0.2 == 0.3 False >>> 1.2 - 0.3 == 0.9 False >>> 0.1 * 0.1 == 0.01 False 위와 같은 이유가 나오는 이유는 부동소수점때문인데요. 컴퓨터는 숫자를 표현할 때 기본적으로 2진수를 사용합니다. 그런데 2진수로 표현하지 못하는 소수가 발생하면 컴퓨터는 표현 가능한 가장 근사치의 값으로 저장을 하게 되고 그로 인해 10진 부동소수점 숫자가 2진 부동소수점 숫자로 근사되어 생기는 오차때문인 것입니다. 실제로 0.1은

Naver Blog

[코딩테스트] 프로그래머스 - 소수 만들기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 소수 만들기 [QUESTION] 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. [내 코드] from itertools import combinations def prime_number(x): m = int(x**0.5) for i in range(2, m+1): if x % i == 0: return

Naver Blog

[코딩테스트] 프로그래머스 - k번째수 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. k번째수 [QUESTION] 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. array의 길이는 1 이상 1

Naver Blog

[코딩테스트] 프로그래머스 - 두 개 뽑아서 더하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 두 개 뽑아서 더하기 [QUESTION] 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. [내 코드] from itertools import combinations def solution(numbers): return sorted(set([sum(i) for i in combinations(numbers, 2)])) 이번 문제는 쉬운 문제네요:) 1] 조합을 만들기 위해 combinations 모듈을 import 하고 2]

Naver Blog

[코딩테스트] 프로그래머스 - 크기가 작은 부분문자열 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 크기가 작은 부분문자열 [QUESTION] 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다. [내 코드] def solution(t, p): answer =

Naver Blog

[코딩테스트] 프로그래머스 - 콜라 문제 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 콜라 문제 [QUESTION] 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있습니까? (단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다.) 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있습니다. 이 경우 상빈이는 총 10 + 5 + 2 + 1 + 1 = 19병의

Naver Blog

[코딩테스트] 프로그래머스 - 푸드 파이트 대회 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 푸드 파이트 대회 [QUESTION] 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수

Naver Blog

[코딩테스트] 프로그래머스 - 2016년 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 2016년 [QUESTION] 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) [내 코드] def solution(a, b): mod = ['THU','FRI','SAT','SUN','MON','TUE','WED'] days = [31

Naver Blog

[코딩테스트] 프로그래머스 - 예산 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 예산 [QUESTION] S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. d는

Naver Blog

[코딩테스트] 프로그래머스 - 시저 암호 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 시저 암호 [QUESTION] 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. [내 코드] def solution(s, n): Up = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')*2 Down = list('abcdefghij

Naver Blog

[코딩테스트] 프로그래머스 - 삼총사 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 삼총사 [QUESTION] 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 so

Naver Blog

[코딩테스트] 프로그래머스 - 최소 직사각형 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 최소 직사각형 [QUESTION] 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 리스트는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. [[60, 50], [30, 70], [60, 30], [80, 40]] 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납

Naver Blog

[코딩테스트] 프로그래머스 - 문자열 내 마음대로 정렬하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 문자열 내 마음대로 정렬하기 [QUESTION] 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. [내 코드] def s

Naver Blog

[코딩테스트] 프로그래머스 - 숫자 문자열과 영단어(Lv.1) (by.2021 카카오 채용연계형 인턴십)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 숫자 문자열과 영단어 (by. 2021 카카오 채용연계형 인턴십) [QUESTION] 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. [내 코드] def solution(s): dict = {'0':'zer

Naver Blog

[코딩테스트] 프로그래머스 - 약수의 개수와 덧셈 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 약수의 개수와 덧셈 [QUESTION] 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 1 ≤ left ≤ right ≤ 1,000 [내 코드] def solution(left, right): answer = sum(i for i in range(left, right+1)) for i in range(left, right+1): if int(i**0.5)==i**0.5: answer -= i*2 return answer 1] left와 right을 포함한 그 사이에 있는 모든 수의 합을 구합니다. 2] left와

Naver Blog

[코딩테스트] 프로그래머스 - 부족한 금액 계산하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 부족한 금액 계산하기 [QUESTION] 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는

Naver Blog

[코딩테스트] 프로그래머스 - 행렬의 덧셈 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 행렬의 덧셈 [QUESTION] 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. [내 코드] import numpy as np def solution(arr1, arr2): answer = np.array(arr1)+np.array(arr2) return answer.tolist() 행렬하면 numpy import 해야겠다! 라는 생각이 바로 들어야겠지요? 1] np.array를 통해 리스트를 행렬로 만들어줍니다. 2] 행렬끼리 더해주시구요. 3] 여기서 그냥

Naver Blog

[코딩테스트] 프로그래머스 - 직사각형 별찍기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 직사각형 별찍기 [QUESTION] 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. n과 m은 각각 1000 이하인 자연수입니다. 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. [내 코드] a, b = map(int, input().strip().split(' ')) for i in range(b): for i in range(a): print('*', end

Naver Blog

[코딩테스트] 프로그래머스 - 같은 숫자는 싫어 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 같은 숫자는 싫어 [QUESTION] 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원

Naver Blog

[코딩테스트] 프로그래머스 - 3진법 뒤집기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 3진법 뒤집기 [QUESTION] 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. n은 1 이상 100,000,000 이하인 자연수입니다. [내 코드] def solution(n): ans = '' while n > 0: n, mod = divmod(n, 3) ans += str(mod) return int(ans, 3) 1] n이 0보다 큰 경우에는 반복해서 2] divmod(n, 3)을 통해 n을 3으로 나눈 몫과 나머지를 n, mod로 받고 3] 그 나머지를 빈 문자열에 하나씩 추가하여 3진법으로 나타낸 수를 뒤집어 주고 4] 그 수를 10진법으로 만들어주어 return

Naver Blog

[코딩테스트] 프로그래머스 - 이상한 문자 만들기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 이상한 문자 만들기 [QUESTION] 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. [내 코드] def solution(s): sen = s.split(' ') answer = '' for i in sen: for j in range(len(i)): if j%2==0: answer += i[j].upper() else: answer +=

Naver Blog

[코딩테스트] 파이썬 QUIZ - join()과 split()

스무번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : D 오늘 퀴즈는 파이썬의 문자열 분리/합치기 함수에 관해 공부하려고 퀴즈를 내어봤습니다. [문자열 분리 - split() 함수 사용] 문자열.split(parameter) 파이썬에서 문자열을 분리할 때에는 split() 함수를 사용하는데, 이 함수는 parameter로 구분자를 주면 해당 구분자를 기준으로 문자열을 분리하여 리스트에 넣어 반환합니다. 만약 parameter에 아무 것도 부여하지 않으면 공백을 기준으로 문자열열을 분리합니다. >>> s = 'Hi I am Sally Nice to meet you' >>> print(s.split()) ['Hi', 'I', 'am', 'Sally', 'Nice', 'to'

Naver Blog

[코딩테스트] 프로그래머스 - 제일 작은 수 제거하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 제일 작은 수 제거하기 [QUESTION] 정수를 저장한 배열, 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] else: arr.remove(min(arr)) return arr 1] arr 내 아이템 수가 1이면 [-1]을 return 2] arr 내 아이템 수가

Naver Blog

[코딩테스트] 프로그래머스 - 없는 숫자 더하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 없는 숫자 더하기 [QUESTION] 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. [내 코드] def solution(numbers): num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] answer = [i for i in num if i not in numbers] return sum(answer) 1] 0부터 9까지의 정수가 들어있는 리스트를 만들고 2] num을 돌면서 num

Naver Blog

[코딩테스트] 프로그래머스 - 가운데 글자 가져오기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 가운데 글자 가져오기 [QUESTION] 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. s는 길이가 1 이상, 100이하인 스트링입니다. [내 코드] def solution(s): answer = [str(i) for i in str(s)][(len(s)-1)//2:(len(s)+2)//2] return ''.join(answer) s에 있는 문자를 리스트로 가지고오고, 인덱스로 문자를 가지고 와서 join()을 통해 문자열 병합을 해주었습니다. 여러분도 이제 이쯤은 10초 만에 해결 가능하시죠! Lv.0 정답률 낮은 문제가 Lv.1 정답률 높은 문제보다 더 어렵네요. 여기서 정답률을 기반으로 문항 Lv이 자

Naver Blog

[코딩테스트] 프로그래머스 - 수박수박수박수박수 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 수박수박수박수박수? [QUESTION] 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. n은 길이 10,000이하인 자연수입니다. [내 코드] def solution(n): answer = '수박'*n return answer[0:n] '수박'을 n만큼 곱하고 인덱스로 원하는 str을 return하면 간단하게 해결됩니다:)

Naver Blog

[코딩테스트] 프로그래머스 - 문자열 내림차순으로 배치하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 문자열 내림차순으로 배치하기 [QUESTION] 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. str은 길이 1 이상인 문자열입니다. [내 코드] def solution(s): return ''.join(sorted(s, reverse=True)) 1] sorted(s, reverse=True)로 s에 포함된 문자열 하나하나를 내림차순으로하여 리스트로 정렬하고 2] 그 리스트를 ''.join을 통해 문자열로 return합니다. * sorted(s, reverse=True)는 s에 포함된 문자열 하나하나를 내림차순으로하여 리스트로 내뱉습

Naver Blog

[코딩테스트] 프로그래머스 - 하샤드 수 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 하샤드 수 [QUESTION] 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. x는 1 이상, 10000 이하인 정수입니다. [내 코드] def solution(x): n_sum = sum(int(i) for i in str(x)) return x%n_sum==0

Naver Blog

[코딩테스트] 프로그래머스 - 두 정수 사이의 합 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 두 정수 사이의 합 [QUESTION] 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. [내 코드] def solution(a, b): if a < b: return sum(i for i in range(a, b+1)) else: return sum(i for i in range(b, a+1)) [가장 좋아요 많이 받은 코드] def adder(a, b): if

Naver Blog

[코딩테스트] 프로그래머스 - 콜라츠 추측 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 콜라츠 추측 [QUESTION] 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을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을

Naver Blog

[코딩테스트] 프로그래머스 - 서울에서 김서방 찾기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 서울에서 김서방 찾기 [QUESTION] String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다. [내 코드] def solution(seoul): ind = seoul.index('Kim') return f'김서방은 {ind}에 있다' seoul에서 'Kim'에 포함된 index를 ind에 선언하고 f-string으로 '김서방은

Naver Blog

[코딩테스트] 프로그래머스 - 나누어떨어지는 숫자 배열 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 나누어떨어지는 숫자 배열 [QUESTION] array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. [내 코드] def solution(arr, divisor): return sorted(i for i in arr if i%divisor==0) or [-1] arr 리스트를 순환하며 arr 내 아이템을 divisor로 나누었을 때의

Naver Blog

[코딩테스트] 프로그래머스 - 핸드폰 번호 가리기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 핸드폰 번호 가리기 [QUESTION] 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. phone_number는 길이 4 이상, 20이하인 문자열입니다. [내 코드] def solution(phone_number): return '*'*(len(phone_number)-4) + phone_number[-4:] 파이썬에서는 문자열 곱셈이 가능하므로 쉽게 해결 가능합니다~

Naver Blog

[코딩테스트] 프로그래머스 - 음양 더하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 음양 더하기 [QUESTION] 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. [내 코드] def solution(absolutes, signs): answer= [] for i in range

Naver Blog

[코딩테스트] 프로그래머스 - 정수 내림차순으로 배치하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 정수 내림차순으로 배치하기 [QUESTION] 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. n은 1이상 8000000000 이하인 자연수입니다. [내 코드] def solution(n): lst = [i for i in str(n)] return int(''.join(sorted(lst, reverse=True)))

Naver Blog

[코딩테스트] 프로그래머스 - 나머지가 1이 되는 수 찾기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 나머지가 1이 되는 수 찾기 [QUESTION] 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 3 ≤ n ≤ 1,000,000 [내 코드] def solution(n): return min([i for i in range(1, n) if n%i==1]) [가장 좋아요 많이 받은 코드] def solution(n): return [x for x in range(1,n+1) if n%x==1][0] 저는 min값으로 정답을 return했고, 가장 좋아요 많이 받은 코드는 인덱스로 첫번째 수를 return 했네요:) 전체를 보고 최솟값 찾는것보다

Naver Blog

[코딩테스트] 프로그래머스 - 겹치는 선분의 길이 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 겹치는 선분의 길이 [QUESTION] 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. lines의 길이 = 3 lines의 원소의 길이 = 2 모든 선분은 길이가 1 이상입니다. lines의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양

Naver Blog

[코딩테스트] 프로그래머스 - 자릿수 더하기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 자릿수 더하기 [QUESTION] 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. N의 범위 : 100,000,000 이하의 자연수 [내 코드] def solution(N): return sum([int(i) for i in str(N)]) Lv.0 정답률 낮

Naver Blog

[코딩테스트] 프로그래머스 - x만큼 간격이 있는 n개의 숫자 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. x만큼 간격이 있는 n개의 숫자 [QUESTION] 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. [내 코드] def solution(x, n): if x!=0: return [i for i in range(x, x*(n+1), x)] else: return [0]*n [가장 좋아요 많이 받은 코드] def solution(x, n): return [i * x + x for i in range(n)]

Naver Blog

[코딩테스트] 프로그래머스 - 자연수 뒤집어 배열로 만들기 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 자연수 뒤집어 배열로 만들기 [QUESTION] 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. n은 10,000,000,000이하인 자연수입니다. [내 코드] def solution(n): return [int(i) for i in str(n)][::-1]

Naver Blog

[코딩테스트] 프로그래머스 - 문자열 내 p와 y의 개수 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 문자열 내 p와 y의 개수 [QUESTION] 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. [내 코드]

Naver Blog

[코딩테스트] 프로그래머스 - 정수 제곱근 판별 (Lv.1)

이 문제는 프로그래머스 코딩테스트 Lv.1에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 정수 제곱근 판별 [QUESTION] 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. n은 1이상, 50000000000000 이하인 양의 정수입니다. [내 코드] def solution(n): if int(n**0.5)==n**0.5: return ((n**0.5)+1)**2 else: return -1 n의 1/2 제곱과 n의 1/2제곱의 정수부분이 같으면 완전제곱수이므로 n의 1/2 제곱(루트 n)의 값에 1을 더하여 제곱한 값을 return 그렇지 않으면 -1을 return합니다.

Naver Blog

[데이터 자격증] 3일 만에 합격한 SQLD 핵심노트 제공:)

안녕하세요:) 데이터 다루는 샐리입니다~ 오늘은 SQLD 핵심노트를 공유하는 목적으로 포스팅을 작성합니다:) 저의 3일 만에 합격하는 SQLD(SQL개발자) 포스팅을 보신 분들이라면 제가 혼자 공부를 하기 위해 만들었던 SQLD 핵심요약 정리가 있음을 아실텐데요! SQLD 시험 관련 정보는 위 링크를 클릭해주시면 확인 가능하십니다:) 인터넷에서 구했던 SQLD 요약정리는 단순 나열식으로 정리되어 있어서 이해하기 어려운 부분이 있어서 학습 depth에 따라 편집이 되어 있고, 다음과 같은 형태입니다:) 제 포스팅을 읽어주시는 분들을 위해 이 SQLD 핵심요약 노트를 공유하고자 합니다~ 필요하신 분은 공감 버튼 꾸욱 눌러주시기 부탁드리고, 첨부파일 다운로드 후 댓글 주시면 대댓글로 파일 비밀번호를 알려드리도록 하겠습니다c SQLD 시험 준비하시는 분들께 도움이 되길 희망합니다:) 첨부파일 SQLD핵심노트_sally_배포용.pdf 파일 다운로드

Naver Blog

[코딩테스트] 프로그래머스 - 연속된 수의 합 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 연속된 수의 합 [QUESTION] 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. 1 ≤ num ≤ 100 0 ≤ total ≤ 1000 num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다. [내 코드] def solution(num, total): answer = [] ave = total//num return [i for i in range(ave-(num-1)//2, ave+(num+2)//2)] num이 홀수이면 total//num 값이 항상 가운데에 들어가

Naver Blog

[코딩테스트] 파이썬 QUIZ - pop()

열여덟번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : D 오늘 퀴즈는 pop() 에 관련된 퀴즈입니다. 파이썬에서 리스트 형태에 저장된 값을 삭제하는 방법으로 clear() : 모든 요소 삭제 pop(): 저장한 위치 값 삭제 후 삭제한 값 취득 remove(): 저장한 위치 값과 같은 값 검색 후 처음 값 삭제 del : 위치 또는 범위 지정 삭제 가 있는데요. pop(a) 꼴은 a번째 인덱스에 해당하는 값을 삭제 후 삭제한 값을 취득합니다. 따라서 문제를 보면 인덱스 1에 해당하는 값을 list에서 삭제 후 삭제한 값 3을 반환하게 됩니다. >>> list = [1,3,5] >>> print(list.pop(1)) 3 # list에서 인덱스 1에 해당하는 값을 삭제

Naver Blog

[알고리즘] 완전 탐색

완전 탐색이란? 모든 경우의 수를 시도하는 방법 (Brute Force) 해가 존재하면 반드시 찾을 수 있음 경우의 수에 따라 실행 시간 비례하므로 입력 값의 범위가 작을 때 유용 완전 탐색 기법 1) 단순 Brute-Force for문과 if문 등으로 모든 case를 만들어 답을 구하는 방법 2) 비트마스크 (Bitmask) 2진수 이용하는 컴퓨터 연산을 이용하는 방법 각 원소가 포함or불포함으로 구성되는 경우에 유용하게 사용 and연산, or연산, not연산, xor연산 등의 비트 연산을 통해 부분 집합을 표현 3) 재귀 함수 (Recursive) 자기 자신을 호출하는 방법 재귀 탈출을 위한 탈출 조건이 필요함 (무한 루프 발생 방지) 현재 함수 상태를 저장하는 Parameter 필요 4) 순열 (Permutation) 완전 탐색의 대표적 유형 서로 다른 n개를 일렬로 나열하는 순열은 n! (n factorial) 5) 너비 우선 탐색 (BFS) / 깊이 우선 탐색 (DFS) 그

Naver Blog

[코딩테스트] 프로그래머스 - 평행 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 평행 [QUESTION] 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. dots의 길이 = 4 dots의 원소는 [x, y] 형태이며 x, y는 정수입니다. 0 ≤ x, y ≤ 100 서로 다른 두개 이상의 점이 겹치는 경우는 없습니다. 두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요. 임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다. [내 코드] def slope(dot1, do

Naver Blog

[코딩테스트] 프로그래머스 - 옹알이(1) (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 옹알이(1) [QUESTION] 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.

Naver Blog

[코딩테스트] 파이썬 QUIZ - 함수 선언 def

열아홉번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : B 오늘 퀴즈는 파이썬 함수 선언 - def 에 관련된 퀴즈입니다. 코드를 작성할 때, 자주 사용할 만한 내용을 함수로 선언하여 반복적으로 쉽게 사용이 가능합니다. 내장함수 외 함수를 사용하기 위해 함수 정의하는 방법은 다음과 같습니다. def 함수이름(매개변수 목록): 코드 Block return 원하는 결과 definition을 통해 함수이름을 정의하고, return을 통해 해당 함수 입력한 결과값이 쌍으로 이루어져 있습니다. 문제에서는 >>> def solution(lst): >>> lst = [1, 2, 3] >>> lst = [4, 5, 6] def solution에서 return 값이 없기 때문에 solu

Naver Blog

[코딩테스트] 프로그래머스 - 분수의 덧셈 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 분수의 덧셈 [QUESTION] 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 0 <numer1, denom1, numer2, denom2 < 1,000 [내 코드] import math def solution(numer1, denom1, numer2, denom2): mom = denom1*denom2 son = numer1*denom2 + numer2*denom1 gcd = math.gcd(mom, son) a = mom/gcd b = son/g

Naver Blog

[코딩테스트] 프로그래머스 - 최빈값 구하기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 최빈값 구하기 [QUESTION] 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 0 < array의 길이 < 100 0 ≤ array의 원소 < 1000 [내 코드] from collections import Counter def solution(array): if len(set(array)) > 1: tupl = Counter(array).most_common(2) if tupl[0][1] == tupl[1][1]: return -1 else: return tupl[0][0] else: return array[0] 1

Naver Blog

[코딩테스트] 프로그래머스 - OX 퀴즈 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. OX 퀴즈 [QUESTION] 덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요. 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다. 1 ≤ quiz의 길이 ≤ 10 X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다. X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다. -10,000 ≤ X, Y ≤ 10,000 -20,000 ≤ Z

Naver Blog

[코딩테스트] 프로그래머스 - 다음에 올 숫자 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 다음에 올 숫자 [QUESTION] 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. 2 < common의 길이 < 1,000 -1,000 < common의 원소 < 2,000 common의 원소는 모두 정수입니다. 등차수열 혹은 등비수열이 아닌 경우는 없습니다. 등비수열인 경우 공비는 0이 아닌 정수입니다. [내 코드] def solution(common): if common[2]-common[1] == common[1]-common[0]: d = common[2]-common[1] return common[-1]+d else: r = common[1]//common[0] return comm

Naver Blog

[코딩테스트] 프로그래머스 - 등수 매기기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 등수 매기기 [QUESTION] 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. 0 ≤ score[0], score[1] ≤ 100 1 ≤ score의 길이 ≤ 10 score의 원소 길이는 2입니다. score는 중복된 원소를 갖지 않습니다. [내 코드] def solution(score): mean = [] rank = [] for i in score: mean.append(sum(i)/len(i)) sort_mean = sorted(mean, reverse=True

Naver Blog

[코딩테스트] 파이썬 QUIZ - 파이썬 사칙연산

열여섯번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : D 오늘 퀴즈는 파이썬 사칙연산에 관한 퀴즈인데요. 파이썬 사칙연산 ('+', '-', '/', '*')에 대해 알아보도록 하겠습니다. 1] 파이썬 덧셈 (+) >>> 1+2 3 >>> 'hello'+'Sally' 'helloSally' 숫자, 문자열 모두 덧셈 가능합니다. 2] 파이썬 뺄셈 (-) >>> 1-2 -1 문자열 뺄셈 불가능합니다. 3] 파이썬 곱셈 (*) >>> 3*4 12 >>> 'hi'*3 'hihihi' 숫자, 문자열 곱셈 가능합니다. (문자열은 int일 때만 곱셈 가능/ float은 불가능) 4] 파이썬 나눗셈 (/) >>> 2/5 0.4 5] 추가 연산 5-1) 거듭제곱 (**) >>> 3**

Naver Blog

[코딩테스트] 파이썬 QUIZ - while 문

열일곱번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : C 오늘 퀴즈는 while 문에 관련된 퀴즈입니다. while 문은 조건문이 참인 동안에 while 문에 속한 조건문이 반복 수행됩니다. 문제에서 x =1이고, x가 15보다 작거나 같을 때까지, x에 2를 더해 그 값을 x로 할당합니다. x=1, 3, 5, 7, 9, 11, 13, 15까지 증가하는 것은 쉬운데요. 이때 정답이 15일지 17일지가 고민이실 겁니다. x <= 15인 순간의 x=15이고 이는 조건문이 참이므로 x=x+2를 한 뒤에 x를 print 하므로 x=15+2=17을 return 하게 됩니다:)

Naver Blog

[코딩테스트] 프로그래머스 - 문자열 밀기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 문자열 밀기 [QUESTION] 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 < A의 길이 = B의 길이 < 100 A, B는 알파벳 소문자로 이루어져 있습니다. [내 코드] def solution(A, B): return (B*2).find(A) 찾으려는 문자열을 2배를 해주고 find 함수를 이용했습니다. find 메서드는 string.find(찾는 문자) 꼴입니다.

Naver Blog

[코딩테스트] 프로그래머스 - 특이한 정렬 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 특이한 정렬 [QUESTION] 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10,000 1 ≤ numlist의 원소 ≤ 10,000 1 ≤ numlist의 길이 ≤ 100 numlist는 중복된 원소를 갖지 않습니다. [내 코드] def solution(numlist, n): return sorted(numlist, key = lambda x: (abs(n-x), -x)) 이 문제는 정렬, 람다를 이용했습니다. 먼

Naver Blog

[코딩테스트] 프로그래머스 - 저주의 숫자 3 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 저주의 숫자 3 [QUESTION] 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다. 10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 1 1 6 8 2 2 7 10 3 4 8 11 4 5 9 14 5 7 10 16 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요. 1 ≤ n ≤ 100 [내 코드] def solution(n): answer = 0 for i in range(n): answer += 1 while answer% 3 ==0 or '3' in str(answer): answer +=1 ret

Naver Blog

[코딩테스트] 프로그래머스 - 다항식 더하기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 다항식 더하기 [QUESTION] 한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 0 < polynomial에 있는 수 < 100 polynomial에 변수는 'x'만 존재합니다. polynomial은 0부터 9까지의 정수, 공백, ‘x’, ‘+'로 이루어져 있습니다. 항과 연산기호 사이에는 항상 공백이 존재합니다. 공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다. 하나의 항에서 변수가 숫자 앞에 오는 경우는

Naver Blog

[코딩테스트] 프로그래머스 - 로그인 성공? (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 로그인 성공? [QUESTION] 머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요. 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다. 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다. 회원들의 아이디는 문자열입니다. 회원들의 아이디는 알파벳 소문자와 숫자로만 이루어져 있습니다. 회원들의 패스워드는 숫자로 구성된 문자열입니다. 회원들의

Naver Blog

[코딩테스트] 프로그래머스 - 치킨 쿠폰 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 치킨 쿠폰 [QUESTION] 프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요. 제한사항 chicken은 정수입니다. 0 ≤ chicken ≤ 1,000,000 [내 코드] def solution(chicken): answer = 0 while chicken >= 10: div, mod = divmod(chicken, 10) answer += div chicken = div+mod return answer [가장 좋아요 많

Naver Blog

[코딩테스트] 프로그래머스 - 유한소수 판별하기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 유한소수 판별하기 [QUESTION] 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다. 두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요. [내 코드] import math def solution(a, b): b = b/math.gcd(a, b) while b%2==0: b//=2 while b%5==0: b//=5 return 1 if b==1 else 2 math를 import

Naver Blog

[코딩테스트] 파이썬 QUIZ - 슬라이싱 (Slicing)

열다섯번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : D 오늘 퀴즈는 슬라이싱 관련 퀴즈입니다. 파이썬에서 인덱싱을 사용하는 방법은 객체[index] 꼴인데요. 앞에서부터 시작하면 인덱스는 0부터 시작, 뒤에서부터 시작하면 인덱스는 -1부터 시작합니다. 슬라이싱은 무언가를 잘라낸다는 뜻으로 연속적인 개체에서 일부를 잘라내 추출하는 것입니다. 파이썬에서 슬라이싱을 사용하는 방법은 객체[start:end:step] 꼴입니다. start : 슬라이싱 시작할 위치 end : 슬라이싱 끝낼 위치로 end 값 미포함, end-1까지의 값 포함 step : 얼마만큼 건너뛰어 객체 값을 가지고 올 것인지 (생략할 경우 기본 step 1) 이때 step에 -1을 넣어주면 끝부터 처음까

Naver Blog

[코딩테스트] 프로그래머스 - 외계인 사전 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 외계어 사전 [QUESTION] PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. spell과 dic의 원소는 알파벳 소문자로만 이루어져있습니다. 2 ≤ spell의 크기 ≤ 10 spell의 원소의 길이는 1입니다. 1 ≤ dic의 크기 ≤ 10 1 ≤ dic의 원소의 길이 ≤ 10 spell의 원소를 모두 사용해 단어를 만들어야 합니다. spell의 원소를 모두 사용해 만들 수 있는 단어는 dic에 두 개

Naver Blog

[코딩테스트] 프로그래머스 - 캐릭터의 좌표 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 캐릭터의 좌표 [QUESTION] 머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. [0, 0]은 board의 정 중앙에 위치합니다. 예를 들어 boar

Naver Blog

[코딩테스트] 프로그래머스 - 직사각형 넓이 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 직사각형 넓이 [QUESTION] 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요. dots의 길이 = 4 dots의 원소의 길이 = 2 -256 < dots[i]의 원소 < 256 잘못된 입력은 주어지지 않습니다. [내 코드] def solution(dots): dots = sorted(dots) return (dots[2][0]-dots[0][0])*(dots[1][1]-dots[0][1]) 정렬을 해주면 x좌표가 작은 순서대로, x좌표의 값이 같으면 y좌표가

Naver Blog

[코딩테스트] 프로그래머스 - 공 던지기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 공 던지기 [QUESTION] 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 2 < numbers의 길이 < 100 0 < k < 1,000 numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다. numbers는 1부터 시작하며 번호는 순서대로 올라갑니다. [내 코드] def solution(numbers, k): players = numbers[::2] if len(numbers)%2==0 else

Naver Blog

[코딩테스트] 프로그래머스 - 영어가 싫어요 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 영어가 싫어요 [QUESTION] 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. numbers는 소문자로만 구성되어 있습니다. numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다. 1 ≤ numbers의 길이 ≤ 50 "zero"는 numbers의 맨 앞에 올 수 없습니다. [내 코드] def solution(numbers): dict = {'zero':0, 'one':1, 'two':2, 'thre

Naver Blog

[코딩테스트] 프로그래머스 - 잘라서 배열하기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 잘라서 배열하기 [QUESTION] 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. 1 ≤ my_str의 길이 ≤ 100 1 ≤ n ≤ my_str의 길이 my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다. [내 코드] def solution(my_str, n): return [my_str[i:i+n] for i in range(0, len(my_str), n)]

Naver Blog

[코딩테스트] 프로그래머스 - 컨트롤 제트 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 컨트롤 제트 [QUESTION] 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요. 1 ≤ s의 길이 ≤ 200 -1,000 < s의 원소 중 숫자 < 1,000 s는 숫자, "Z", 공백으로 이루어져 있습니다. s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다. 연속된 공백은 주어지지 않습니다. 0을 제외하고는 0으로 시작하는 숫자는 없습니다. s는 "Z"로 시작하지 않습니다. s의 시작과 끝에는 공백이 없습니다. "Z"가 연속해서 나오는 경우

Naver Blog

[코딩테스트] 프로그래머스 - 문자열 계산하기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 문자열 계산하기 [QUESTION] my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. 연산자는 +, -만 존재합니다. 문자열의 시작과 끝에는 공백이 없습니다. 0으로 시작하는 숫자는 주어지지 않습니다. 잘못된 수식은 주어지지 않습니다. 5 ≤ my_string의 길이 ≤ 100 my_string을 계산한 결과값은 1 이상 100,000 이하입니다. my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다. 계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다. my_string에는 연산자가 적어도 하나 포함되어 있습니다.

Naver Blog

[코딩테스트] 프로그래머스 - 팩토리얼 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 팩토리얼 [QUESTION] i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요. i! ≤ n [내 코드] from math import factorial def solution(n): return max([i for i in range(1, 11) if factorial(i)<=n]) [가장 좋아요 많이 받은 코드] from math import factorial def solution(n): k = 10 while n < factorial(k): k -= 1 return k 라이브러리 최고...

Naver Blog

[코딩테스트] 프로그래머스 - 2차원으로 만들기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 2차원으로 만들기 [QUESTION] 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. [내 코드] import numpy as np def solution(num_list, n): return (np.array(num_list)).reshape(len(num_list)//n, n).tolist() [가장 좋아요 많이 받

Naver Blog

[코딩테스트] 프로그래머스 - 가까운 수 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 가까운 수 [QUESTION] 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다. [내 코드] def solution(array, n): array.sort() answer = [abs(n-i) for i in array] ind = answer.index(min(answer)) return array[ind] [가장 좋아요 많이 받은 코드] solution=lambda a,n:sorted(a,key=lambda x:(abs(x-n),x))[0] 저는 먼저 array를 sort 해주고 (n과 동일한 차이일 때

Naver Blog

[코딩테스트] 프로그래머스 - k의 개수 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. k의 개수 [QUESTION] 1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요. [내 코드] def solution(i, j, k): lst = [str(x) for x in range(i, j+1)] answer = [y for y in str(lst)] return answer.count(str(k)) [가장 좋아요 많이 받은 코드] def solution(i, j, k): answer = sum([str(i).count(str(k)) for i in range(i,j+1)]) return answer

Naver Blog

[코딩테스트] 프로그래머스 - 숨어있는 숫자의 덧셈(2) (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 숨어있는 숫자의 덧셈(2) [QUESTION] 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요. 연속된 수는 하나의 숫자로 간주합니다. 000123과 같이 0이 선행하는 경우는 없습니다. 문자열에 자연수가 없는 경우 0을 return 해주세요. [내 코드] def solution(my_string): lst = ''.join(i if i.isdigit() else ' ' for i in my_string) return sum(int(i) for i in lst.split()) [나와 다른 코드 중 가장 좋아요 많이 받은 코드] impor

Naver Blog

[코딩테스트] 프로그래머스 - 이진수 더하기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 이진수 더하기 [QUESTION] 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. return 값은 이진수를 의미하는 문자열입니다. 1 ≤ bin1, bin2의 길이 ≤ 10 bin1과 bin2는 0과 1로만 이루어져 있습니다. bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다. [내 코드] def solution(bin1, bin2): return bin(int(bin1, 2)+int(bin2, 2))[2:] 이번 코드는 가장 좋아요 많이 받은 코드와 같아서 포스팅을 작성할까 고민했지만 진법 변환에 관한 정리를 위해서 포스팅 작성합니다:) [n진수 → 10진수] int(str

Naver Blog

[코딩테스트] 프로그래머스 - 소인수분해 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 소인수분해 [QUESTION] 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. [내 코드] def solution(n): answer = [] d = 2 while d <= n: if n % d == 0: answer.append(d) n = n // d else: d += 1 return sorted(set(answer)) 중요하다고 생각하는 문제라서 포스팅 남깁니다. 우선 divisor를 2로 설정하고 d <= n인 동안 while 하단

Naver Blog

[코딩테스트] 프로그래머스 - 대문자와 소문자 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 대문자와 소문자 [QUESTION] 문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요. [내 코드] def solution(my_string): answer = [] for i in my_string: if i.isupper() is True: answer.append(i.lower()) else: answer.append(i.upper()) return ''.join(answer) [가장 좋아요 많이 받은 코드] def solution(my_string): return my_string.swapcase() 오! swapcase() 라는 method가 있는 것을 처음 알았습니다. 저는 빈

Naver Blog

[코딩테스트] 프로그래머스 - 가위 바위 보 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 가위 바위 보 [QUESTION] 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. [내 코드] def solution(rsp): answer = '' for i in rsp: if i == '2': answer += '0' elif i == '0': answer += '5' else: answer += '2' return answer [가장 좋아요 많이 받은 코드] def solution(rsp): d = {'0':'5','2':'0','5':'2'} return ''.join(d[i] fo

Naver Blog

[코딩테스트] 프로그래머스 - 주사위의 개수 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 주사위의 개수 [QUESTION] 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. [내 코드] def solution(box, n): return (box[0]//n) * (box[1]//n) * (box[2]//n) [가장 좋아요 많이 받은 코드] def solution(box, n): x, y, z = box return (x // n) * (y // n) * (z // n ) 사실은 같은 코드이지만 box라는

Naver Blog

[코딩테스트] 프로그래머스 - 배열 회전시키기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 배열 회전시키기 [QUESTION] 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요. [내 코드] def solution(numbers, direction): answer = 2*numbers if direction == 'right': return answer[len(numbers)-1:len(numbers)*2-1] else: return answer[1:len(numbers)+1] [가장 좋아요 많이 받은 코드] def solution(numbers, direction): return [numbers[-1]] + numbe

Naver Blog

[코딩테스트] 프로그래머스 - 369게임 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 369게임 [QUESTION] 머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요. [내 코드] def solution(order): answer = 0 for i in str(order): if i in '369': answer += 1 return answer [가장 좋아요 많이 받은 코드] def solution(order): return sum(map(lambda x: str(order).count(str(x)), [3

Naver Blog

[코딩테스트] 프로그래머스 - 합성수 찾기 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 합성수 찾기 [QUESTION] 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. [내 코드] def num(x): return [i for i in range(1, x+1) if x%i ==0] def solution(n): answer = 0 for j in range(1, n+1): if len(num(j)) >= 3: answer += 1 return answer [가장 좋아요 많이 받은 코드] def solution(n): output = 0 for i in range(4, n + 1): for j in range(2, int(i ** 0.5) + 1): if i %

Naver Blog

[코딩테스트] 프로그래머스 - 중복된 문자 제거 (Lv.0)

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 중복된 문자 제거 [QUESTION] 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. 대문자와 소문자를 구분합니다. 공백(" ")도 하나의 문자로 구분합니다. 중복된 문자 중 가장 앞에 있는 문자를 남깁니다. [내 코드] def solution(my_string): word = [i for i in str(my_string)] answer = [] for x in word: if x in answer: pass else: answer.append(x) return ''.join(answer) [가장 좋아요 많이 받은 코드] def solution(my_string)

1 2