sally_analyst의 등록된 링크

 sally_analyst로 등록된 네이버 블로그 포스트 수는 161건입니다.

[코딩테스트] 프로그래머스 - 올바른 괄호 (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

[코딩테스트] 프로그래머스 - 최솟값 만들기 (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를 뽑아 곱하여 더합니다. (누적된 값 :

[어학 자격증] 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에 응시하였고, 점수 활용처는 다음과 같습니다:) 국가고시 (공무원, 군무원, 소방, 경찰 등) 공무원 해외파견 국가자격증(변리사, 회계사, 감정평가사, 세무

[코딩테스트] 프로그래머스 - 과일 장수 (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]으로 구성된 사과 상자

[코딩테스트] 프로그래머스 - 로또의 최고 순위와 최저 순위 (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라면, 당첨 가능한 최고 순위와 최저 순위

[코딩테스트] 프로그래머스 - 숫자 짝꿍 (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에

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

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

[알고리즘] 탐욕 알고리즘 (Greedy Algorithm) [내부링크]

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

[코딩테스트] 프로그래머스 - 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 ==

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

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

[코딩테스트] 프로그래머스 - 소수 찾기 (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+

[코딩테스트] 프로그래머스 - 모의고사 (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 하도

[코딩테스트] 파이썬 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 과정은 주석을 참고해주세요:) 다음에는 이러한 반복 과정을 줄일 수 있는 퀴즈를 만들어 제공하도록 하겠습니다!

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

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

[코딩테스트] 파이썬 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은

[코딩테스트] 프로그래머스 - 소수 만들기 (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

[코딩테스트] 프로그래머스 - 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

[코딩테스트] 프로그래머스 - 두 개 뽑아서 더하기 (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]

[코딩테스트] 프로그래머스 - 크기가 작은 부분문자열 (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 =

[코딩테스트] 프로그래머스 - 콜라 문제 (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병의

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

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

[코딩테스트] 프로그래머스 - 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

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

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

[코딩테스트] 프로그래머스 - 시저 암호 (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

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

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

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

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

[코딩테스트] 프로그래머스 - 문자열 내 마음대로 정렬하기 (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

[코딩테스트] 프로그래머스 - 숫자 문자열과 영단어(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

[코딩테스트] 프로그래머스 - 약수의 개수와 덧셈 (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와

[코딩테스트] 프로그래머스 - 부족한 금액 계산하기 (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는

[코딩테스트] 프로그래머스 - 행렬의 덧셈 (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] 여기서 그냥

[코딩테스트] 프로그래머스 - 직사각형 별찍기 (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

[코딩테스트] 프로그래머스 - 같은 숫자는 싫어 (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의 원

[코딩테스트] 프로그래머스 - 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

[코딩테스트] 프로그래머스 - 이상한 문자 만들기 (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 +=

[코딩테스트] 파이썬 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'

[코딩테스트] 프로그래머스 - 제일 작은 수 제거하기 (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 내 아이템 수가

[코딩테스트] 프로그래머스 - 없는 숫자 더하기 (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

[코딩테스트] 프로그래머스 - 가운데 글자 가져오기 (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이 자

[코딩테스트] 프로그래머스 - 수박수박수박수박수 (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하면 간단하게 해결됩니다:)

[코딩테스트] 프로그래머스 - 문자열 내림차순으로 배치하기 (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에 포함된 문자열 하나하나를 내림차순으로하여 리스트로 내뱉습

[코딩테스트] 프로그래머스 - 하샤드 수 (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

[코딩테스트] 프로그래머스 - 두 정수 사이의 합 (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

[코딩테스트] 프로그래머스 - 콜라츠 추측 (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을

[코딩테스트] 프로그래머스 - 서울에서 김서방 찾기 (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으로 '김서방은

[코딩테스트] 프로그래머스 - 나누어떨어지는 숫자 배열 (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로 나누었을 때의

[코딩테스트] 프로그래머스 - 핸드폰 번호 가리기 (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:] 파이썬에서는 문자열 곱셈이 가능하므로 쉽게 해결 가능합니다~

[코딩테스트] 프로그래머스 - 음양 더하기 (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

[코딩테스트] 프로그래머스 - 정수 내림차순으로 배치하기 (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)))

[코딩테스트] 프로그래머스 - 나머지가 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 했네요:) 전체를 보고 최솟값 찾는것보다

[코딩테스트] 프로그래머스 - 겹치는 선분의 길이 (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는 각각 선분의 양

[코딩테스트] 프로그래머스 - 자릿수 더하기 (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 정답률 낮

[코딩테스트] 프로그래머스 - 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)]

[코딩테스트] 프로그래머스 - 자연수 뒤집어 배열로 만들기 (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]

[코딩테스트] 프로그래머스 - 문자열 내 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]을 리턴합니다. [내 코드]

[코딩테스트] 프로그래머스 - 정수 제곱근 판별 (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합니다.

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

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

[코딩테스트] 프로그래머스 - 연속된 수의 합 (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 값이 항상 가운데에 들어가

[코딩테스트] 파이썬 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에 해당하는 값을 삭제

[알고리즘] 완전 탐색 [내부링크]

완전 탐색이란? 모든 경우의 수를 시도하는 방법 (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) 그

[코딩테스트] 프로그래머스 - 평행 (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

[코딩테스트] 프로그래머스 - 옹알이(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"가 한 번씩만 등장합니다.

[코딩테스트] 파이썬 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

[코딩테스트] 프로그래머스 - 분수의 덧셈 (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

[코딩테스트] 프로그래머스 - 최빈값 구하기 (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

[코딩테스트] 프로그래머스 - 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

[코딩테스트] 프로그래머스 - 다음에 올 숫자 (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

[코딩테스트] 프로그래머스 - 등수 매기기 (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

[코딩테스트] 파이썬 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**

[코딩테스트] 파이썬 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 하게 됩니다:)

[코딩테스트] 프로그래머스 - 문자열 밀기 (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(찾는 문자) 꼴입니다.

[코딩테스트] 프로그래머스 - 특이한 정렬 (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)) 이 문제는 정렬, 람다를 이용했습니다. 먼

[코딩테스트] 프로그래머스 - 저주의 숫자 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

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

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

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

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

[코딩테스트] 프로그래머스 - 치킨 쿠폰 (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 [가장 좋아요 많

[코딩테스트] 프로그래머스 - 유한소수 판별하기 (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

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

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

[코딩테스트] 프로그래머스 - 외계인 사전 (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에 두 개

[코딩테스트] 프로그래머스 - 캐릭터의 좌표 (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

[코딩테스트] 프로그래머스 - 직사각형 넓이 (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좌표가

[코딩테스트] 프로그래머스 - 공 던지기 (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

[코딩테스트] 프로그래머스 - 영어가 싫어요 (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

[코딩테스트] 프로그래머스 - 잘라서 배열하기 (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)]

[코딩테스트] 프로그래머스 - 컨트롤 제트 (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"가 연속해서 나오는 경우

[코딩테스트] 프로그래머스 - 문자열 계산하기 (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에는 연산자가 적어도 하나 포함되어 있습니다.

[코딩테스트] 프로그래머스 - 팩토리얼 (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 라이브러리 최고...

[코딩테스트] 프로그래머스 - 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() [가장 좋아요 많이 받

[코딩테스트] 프로그래머스 - 가까운 수 (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과 동일한 차이일 때

[코딩테스트] 프로그래머스 - 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

[코딩테스트] 프로그래머스 - 숨어있는 숫자의 덧셈(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

[코딩테스트] 프로그래머스 - 이진수 더하기 (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

[코딩테스트] 프로그래머스 - 소인수분해 (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 하단

[코딩테스트] 프로그래머스 - 대문자와 소문자 (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가 있는 것을 처음 알았습니다. 저는 빈

[코딩테스트] 프로그래머스 - 가위 바위 보 (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

[코딩테스트] 프로그래머스 - 주사위의 개수 (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라는

[코딩테스트] 프로그래머스 - 배열 회전시키기 (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

[코딩테스트] 프로그래머스 - 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

[코딩테스트] 프로그래머스 - 합성수 찾기 (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 %

[코딩테스트] 프로그래머스 - 중복된 문자 제거 (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)

[코딩테스트] 파이썬 QUIZ - set 함수 [내부링크]

절기 매직이란 말 들어보셨나요? '입춘'이 지나고나니 부쩍 따뜻해진 게 정말 신기합니다. 부쩍 일교차가 크니 감기 조심하시구요. 열 네번째 퀴즈 시작하겠습니다:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : B 오늘은 파이썬 내장함수 set에 대해서 공부해보려고 해요. 개인적으로 이직을 위해 코딩테스트 공부를 하고 있는데, set을 이용하여 중복 제거를 해야하는 경우가 종종 있어서 오늘 퀴즈를 준비했습니다. set은 고등학교 수학시간에 많이 들어보셨쬬? 바로 집합을 의미합니다. 파이썬 set 함수는 중복되지 않은 원소를 얻고자 할 때 사용하는 python 내장 함수입니다. 주의하셔야 할 것은, 어려서 배운 집합은 { }로 표기했지만 파이썬에서 { }는 dict 선언하는 것이므로 [ ] 로

[코딩테스트] 프로그래머스 - 문자 반복 출력 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 문자 반복 출력 [QUESTION] 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요. [내 코드] def solution(my_string, n): answer = [] for i in my_string: answer.append(i*n) return ''.join(answer) [가장 좋아요 많이 받은 코드] def solution(my_string, n): return ''.join(i*n for i in my_string) 풀어나가는 과정과 생각은 같았지만 한 줄로 리턴할 수 있었습니다. answer이란 지역변수를 별도로 선언하지 않고도 문제를 해결하는 것이

[코딩테스트] 프로그래머스 - 옷가게 할인 받기 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 옷가게 할인 받기 [QUESTION] 머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요. [내 코드] def solution(price): if price >= 50*10000: return int(price*0.8) elif 30*10000 <= price < 50*10000: return int(price*0.9) elif 10*10000 <= price < 30*10000: return int(price*0.95) else: return int(price) [가장 좋아요 많이 받은 코드] def sol

[코딩테스트] 프로그래머스 - 머쓱이보다 키 큰 사람 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 머쓱이보다 키 큰 사람 [QUESTION] 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요. [내 코드] def solution(array, height): answer = 0 for i in array: if i > height: answer += 1 return answer [가장 좋아요 많이 받은 코드] def solution(array, height): array.append(height) array.sort(reverse=True) return array.index(

[코딩테스트] 프로그래머스 - 배열의 유사도 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 배열의 유사도 [QUESTION] 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요. [내 코드] def solution(s1, s2): answer = 0 for i in s1: for j in s2: if i == j: answer +=1 return answer [가장 좋아요 많이 받은 코드] def solution(s1, s2): return len(set(s1)&set(s2)); 이래서 저는 파이썬이라는 언어를 정말정말 사랑합니다. 교집합의 개수로 바로 구해버릴 수가 있었네요. 간결하고 깔끔함의 끝판왕.. 제가 이러한 코드를 작성할 수 있는 그 날까지 매일 발전해야겠습니다..

[코딩테스트] 프로그래머스 - 제곱수 판별하기 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 제곱수 판별하기 [QUESTION] 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요. [내 코드] def solution(n): return 1 if int(n**0.5)== n**0.5 else 2 [가장 좋아요 많이 받은 코드] def solution(n): return 1 if (n ** 0.5).is_integer() else 2 생각의 흐름은 비슷했으나 저는 int(n**0.5) == n**0.5 로 완전제곱수임을 확인했다면 가장 좋아요를 많이 받은 코드는 is_interger()을 이용하였네요. 주어진 수가 정수인지 판별하는 is_interger()

[코딩테스트] 프로그래머스 - 숫자 비교하기 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 숫자 비교하기 [QUESTION] 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. [내 코드] def solution(num1, num2): return 1 if num1==num2 else -1 [가장 좋아요 많이 받은 코드] def solution(num1, num2): return 1 if num1==num2 else -1

[코딩테스트] 프로그래머스 - 피자 나눠 먹기(1) (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 피자 나눠 먹기(1) [QUESTION] 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. [내 코드] import math def solution(n): return math.ceil(n/7) [가장 좋아요 많이 받은 코드] def solution(n): return (n - 1) // 7 + 1 저는 math 라이브러리를 활용하여 ceil을 통해 올림을 했고, 가장 좋아요를 많이 받은 코드는 (n-1)을 7로 나눈 몫에 1을 더해주었습니다. 라이브러리를 필요할 때 잘 사용하는 것이 좋은 코드인지, 아닌 것인지 판단이 어려운

[코딩테스트] 프로그래머스 - 짝수 홀수 개수 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 짝수 홀수 개수 [QUESTION] 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요. [내 코드] def solution(num_list): ev = len([i for i in num_list if i%2 ==0]) od = len([i for i in num_list if i%2 !=0]) return [ev, od] [가장 좋아요 많이 받은 코드] def solution(num_list): answer = [0,0] for n in num_list: answer[n%2]+=1 return answer 인덱스가 짝수일 때, 홀수일 때 1씩 더해주는 방법으로 짝수와 홀수의 개

[코딩테스트] 프로그래머스 - 점의 위치 구하기 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 점의 위치 구하기 [QUESTION] 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요. [내 코드] def solution(dot): if dot[0]*dot[1] > 0: return

[파이썬실습] 파이썬으로 별 그리기 (예쁘게 색도 칠해볼까?) [내부링크]

[Mission] 반복문을 통해 별 그리기 turtle 모듈을 이용한다. line은 검은색, fill은 노란색으로 한다. from turtle import * import turtle as t color('black','yellow') n = int(input('별의 꼭짓점 개수를 입력하세요.: ')) t.shape('turtle') begin_fill() for i in range(n): t.forward(100) t.right((360 / n) * 2) t.forward(100) t.left(360 / n) end_fill() mainloop()

[코딩테스트] 파이썬 QUIZ - 깊은 복사(Deep copy) [내부링크]

혼자 열심히 공부 겸 정보 공유 포스팅을 하지만 많은 분들이 공부하시는 데에 도움이 되고 있는지 알 수가 없어서 조금 아쉽습니다. 혹시라도 퀴즈를 함께 풀고 계시다면 소중한 댓글 하나 부탁드려요~.~ 조금 더 힘을 내서 다양한 퀴즈를 내볼 수 있도록 노력하겠습니다! 열두번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : D 오늘 퀴즈는 깊은 복사 관련 퀴즈입니다. 평소에 보던 퀴즈와 다르게 반환 값이 아닌 중간에 들어갈 코딩을 묻는 퀴즈에요:) 얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미하고, 깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미한다고 지난 'Day11 - 얕은 복사' 포스팅에서 함께 공부 하였습니다

[파이썬실습] 파이썬으로 오징어게임 로고 만들기 [내부링크]

[Mission] 간절히 시즌2를 기다리는 Sally를 위해 오징어게임 로고 그리기 turtle 모듈을 이용한다. line은 검은색, fill은 실제 오징어게임 핑크색 hex코드(#FF3399)로 한다. from turtle import * color('black', '#FF3399') pensize(3) speed('normal') begin_fill() pu() setpos(-150, 0) pd() circle(50) pu() forward(100) pd() for i in range(4): forward(100) left(360/3) right(120) pu() forward(150) pd() for i in range(4): left(360/4) forward(100) end_fill() mainloop() 오징어게임 시즌2.. 얼른 나와주세요

[코딩테스트] 파이썬 QUIZ - 딕셔너리 items() method [내부링크]

개인적으로 바쁜 일정이 있어서 조금 오랜만에 작성하는 퀴즈 포스팅입니다~ 열 세번째 퀴즈 시작하겠습니다! 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : C 오늘은 자료형 중 딕셔너리(사전형)의 item method에 대해 복습하는 퀴즈입니다. 우선 자료형에 대해 간단하게 복습해 볼게요. List (리스트) 파이썬에서 가장 많이 활용되는 시퀀스 자료형 중 하나 []로 표기하며 [] 내 요소를 콤마(,)로 구분 Tuple (튜플) 리스트와 비슷한 성질을 가지고 있지만, 요소의 값을 변경할 수 없음 ()로 표기하며 () 내 요소를 콤마(,)로 구분 데이터 변경이 안되므로 튜플로 만든 데이터에 대한 신뢰도가 높음 Dictionary (딕셔너리) 키(Key):값(Value) 쌍이 하나의 요소 딕셔너리

[코딩테스트] 프로그래머스 - 각도기 (Lv.0) [내부링크]

이 문제는 프로그래머스 코딩테스트 Lv.0에 출제된 문제입니다. (문제 저작권은 프로그래머스에 있습니다) 직접 코드를 작성하고, 내 코드를 다른 코드와 비교하여 발전적인 사람이 되고자 합니다. 각도기 [QUESTION] 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. [내 코드] def solution(angle): if 0 < angle < 90: return 1 elif angle == 90: return 2 elif 90 < angle < 180: return 3 else: return 4 [가장 좋아요 많이 받은 코드] def solution(angle): return (angle//90) * 2 + (angle % 90 > 0) * 1 가장 좋아요

[코딩테스트] 파이썬 QUIZ - 리스트 메소드(method)_append [내부링크]

오늘의 파이썬 퀴즈, 벌써 아홉번째 날입니다. 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ 공부 겸 공유 차원에서 퀴즈를 내고 있는데, 많은 분들에 봐주신다면 언젠가는 정답과 이유를 맞추는 이벤트도 열어보고 싶어요.. 그럴 날이 오겠죠?! 파이썬을 다뤄보고 싶은 초보자분들이 제 블로그를 통해 파이썬을 쉽게 생각하셨으면 하는 바람으로 오늘의 퀴즈 시작해보겠습니다 Answer : D 오늘 퀴즈는 파이썬 리스트 메소드 (List method)를 알아보려고 합니다. list.append(x) # 리스트에 값 추가 list.insert(index, x) # 리스트 특정 위치에 값 추가 list.remove(x) # 리스트에서 특정 값 제거 list.pop() # 리스트의 마지막 값 반환 후 제거 list.exten

[코딩테스트] 파이썬 QUIZ - 리스트 메소드(method)_extend [내부링크]

벌써 한 주가 지나고 금요일입니다. 한 주 동안 공부하신 분들, 일 하신 분들 모두 고생하셨어요! 벌써 파이썬 퀴즈, 열번째 날입니다^^ 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : C 오늘 퀴즈는 '파이썬 아홉번째 퀴즈'에서 알아본 파이썬 리스트 메소드 (List method)를 알아보기 2탄입니다. list.append(x) # 리스트에 값 추가 list.insert(index, x) # 리스트 특정 위치에 값 추가 list.remove(x) # 리스트에서 특정 값 제거 list.pop() # 리스트의 마지막 값 반환 후 제거 list.extend(list2) # 리스트에 다른 리스트2 연결 list.count(x) # 리스트 값 x의 개수 카운트 list.index(x) # 리스트 값

[데이터] 자료구조 - 힙(Heap) [내부링크]

힙(Heap)이란? 데이터에서 최댓값과 최솟값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리 : 노드를 삽입할 때부터 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최댓값과 최솟값을 찾으려면 시간 복잡도 O(n) 힙에 데이터를 넣고, 최댓값과 최솟값을 찾으면 시간 복잡도 간소화 우선순위 큐와 같이 최댓값 또는 최솟값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현에 활용 힙(Heap) 구조 최댓값을 구하기 위한 구조(Max Heap, 최대힙)와 최솟값을 구하기 위한 구조(Min Heap, 최소힙)으로 분류 힙은 다음 조건을 가진 자료구조 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 크거나 같다. (case. Max Heap) 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 작거나 같다. (case. Min Heap) 완전 이진 트리 형태 힙(Heap)과 이진 탐색 트리의 공통점

[코딩테스트] 최대공약수와 최소공배수 구하기 - map 함수로 두 개 변수 입력받기 [내부링크]

최대공약수와 최소공배수 구하기 [QUESTION] 두 개의 자연수를 입력 받아 최대공약수와 최소공배수 출력하는 프로그램을 작성합니다. 여러 가지 방법이 있지만 파이썬 math 모듈의 gcd, lcm 함수를 이용하여 간단하게 풀어보겠습니다. gcd는 최대공약수로 Greatest Common Divisor, lcm은 최소공배수로 Least Common Multiple를 의미합니다. 또한, 이 문제를 풀며 사용한 map 함수는 여러 요소에 하나의 함수를 한번에 대응시켜줄 수 있는 함수로 syntax는 다음과 같습니다. (저장할 변수) = map(function, iterable) map 함수는 input 함수와 함께 사용하는 경우가 많습니다. 문제에서 주어진 내장함수 사용을 위해 import math를 진행해주고 map 함수를 이용, 원하는 함숫값을 입력 받아 최대공약수와 최소공배수를 출력해줍니다. import math a, b = map(int, input().split()) print

[코딩테스트] 피타고라스 정리 - 직각삼각형일까? [내부링크]

세 변의 길이 입력 받아 직각삼각형인지 판단하기 [QUESTION] 세 변의 길이를 입력 받아 직각삼각형인지 판단하여 결과를 출력하는 프로그램을 작성합니다. 오늘 문제를 풀기에 앞서 직각삼각형의 판단은 피타고라스 정리를 이용한다는 사실! 피타고라스 정리는 세 변의 길이를 a, b, c이고, 가장 긴 변의 길이가 c라고 가정한다면 a2 + b2 = c2 이 성립하는 것을 말합니다. 오늘은 세 변의 길이를 map 함수를 통해 입력 받지만, sorted를 통해 오름차순으로 정렬하여 입력한 변의 길이를 가지는 삼각형이 직각삼각형인지를 판단해 보았습니다. while True: a, b, c = sorted(list(map(int, input().split()))) if a == b == c == 0: break if c**2 == a**2 + b**2: print('직각삼각형입니다.') else: print('직각삼각형이 아닙니다')

[코딩테스트] 파이썬 QUIZ - 얕은 복사(shallow copy) [내부링크]

설 연휴는 잘 보내고 오셨나요? 연휴가 끝나고 밀린 업무가 많아 이제 퀴즈 포스팅을 올립니다:) 긴 말 없이! 바로 열한번째 퀴즈 시작할게요:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : C 오늘 퀴즈는 다소 쉽다고 느껴지시죠~? 만약 오답을 내신 분이 계시다면 'B'를 선택하셨으리라고 짐작해봅니다. 오늘 퀴즈의 포인트는 얕은 복사(shallow copy)와 깊은 복사(deep copy)의 차이입니다. 얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미하고, 깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미합니다. 따라서 얕은 복사의 경우, 주소 값을 복사하므로 참조하는 실제 값이 같게 됩니다. 이 개념이 중요한 이유는 변수에서 변수로

[코딩테스트] 파이썬 QUIZ - len 함수와 for 문 [내부링크]

오늘은 파이썬 퀴즈, 벌써 일곱번째 날입니다^^ 저와 함께 공부하는 파이썬 퀴즈가 이 포스팅 읽으시는 분들에게 파이썬과 친해지는 데 조금이나마 도움이 되길 바라며, 오늘의 퀴즈 시작해보겠습니다! 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : B 이번 퀴즈는 len 함수와 for 문에 대한 지식을 확인하는 퀴즈였습니다. 우선 파이썬 내장함수인 len 함수는 문자열의 길이를 구하기 위해서 사용합니다. 예제를 통해 확인해보면 >>> name = 'sally' >>> address = 'seoul' >>> like = 'chocolate' >>> print(len(name)) 5 >>> print(len(address)) 5 >>> print(len(like)) 9 그리고 파이썬 for 문은 반복문

[파이썬실습] 파이썬으로 피라미드 만들기 [내부링크]

[Mission] '*' 이용하여 피라미드 만들기 피라미드 만드는 함수 정의할 것 피라미드 높이 제한은 없음 def pyramid(n): for i in range(1, n+1): for j in range(1, 2*n): if i == n or j == n-i+1 or j == n+i-1: print('*', end='') else: print(' ', end='') print() pyramid(30) Sally와 함께하는 파이썬 source 공유/ 스터디가 유용하다면 공감 버튼 부탁 드려요

[코딩테스트] 파이썬 QUIZ - 문자열 replace() [내부링크]

일주일 중 가장 피곤하다는 수요일이 돌아왔습니다. 모두 힘내시기 바라구요:) 오늘의 파이썬 퀴즈, 여덟번째 날입니다. 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : C 오늘 퀴즈는 파이썬 replace 함수에 관한 퀴즈입니다. replace는 문자열을 변경하는 함수이고 Syntax는 다음과 같습니다. 변수.replace(old, new, [count]) old : 현재 문자열에서 변경을 원하는 문자 new : 새로 바꿀 문자 count : 변경 횟수. 미입력 시 변수의 old 문자열 전체 변경 (기본값: -1) 예시를 통해 알아보면 다음과 같습니다. >>> sally = 'beautiful' >>> sally.replace('u', 'a') beaatifal >>> sally = 'beaut

[데이터] 자료구조 - 링크드 리스트(Linked List) [내부링크]

자료구조 - 링크드 리스트(Linked List) 연결 리스트 배열은 순차적으로 연결된 공간에 데이터를 나열하는 구조 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 본래 C언어에서는 주요 데이터 구조, 그러나 파이썬은 리스트 타입이 링크드 리스트 기능 지원 주요 기능 노드(Node) : 데이터 저장 단위(데이터값 ,포인터)로 구성 포인터(Pointer) : 각 노드 안에서, 다음이나 이전 노드와의 연결 정보를 가지고 있는 공간 Node와 Node 연결 자료구조 링크드 리스트의 장단점 장점 미리 데이터 공간을 할당하지 않아도 됨 (배열은 미리 데이터 공간을 할당해야 하는 것이 단점) 단점 연결을 위한 별도 데이터 공간이 필요 → 저장 공간 효율이 높지 않음 연결 정보를 차즌ㄴ 시간이 필요하여 접근 속도가 느림 중간 데이터 삭제 시, 앞뒤 데이터 연결을 재구성해야하는 부가 작업 필요 다양한 링크드 리스트 구조 더블 링크드 리스트 (Double Li

[데이터] 자료구조 - 해쉬(Hash) [내부링크]

해쉬(Hash) 구조 해쉬 테이블(Hash table) : 키(Key)에 데이터(Value)를 저장하는 데이터 구조 해쉬 테이블의 예 : 파이썬 딕셔너리(Dictionary) 타입 배열로 미리 Hash Table 사이즈만큼 생성 후 사용 알아두어야 할 용어 해쉬(Hash) : 임의 값을 고정 길이로 변환하는 것 해쉬 테이블(Hash Table) : 키 값의 여산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수(Hashing Function) : Key에 대하여 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값(Hash Value) or 해쉬 주소(Hash Address) : Key를 해싱 함수로 연산해서, 해쉬 값을 알아내고 해당 Key에 대한 데이터 위치를 일관성있게 찾을 수 있게 하는 것 슬롯(Slot) : 한 개의 데이터를 저장할 수 있는 공간 해쉬 테이블의 장단점 장점 데이터 저장/읽기 속도가 빠르다. 해쉬는 키에 대한 중복 여부 확인이 쉽다. 단점 저장 공간이

[데이터] 자료구조 - 트리(Tree) [내부링크]

트리(Tree) 구조 트리 : Node와 Branch를 이용하여 사이클을 이루지 않도록 구성한 데이터 구조 탐색 알고리즘 구현을 위해 많이 사용 알아두어야 할 용어 Node : 트리에서 데이터를 저장하는 기본 요소 Root Node : 트리 맨 위의 노드 Level : 최상위 노드를 Level0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이 Parent Node : 어떤 노드의 다음 레벨에 연결된 노드 Child Node : 어떤 노드의 상위 레벨에 연결된 노드 Leaf Node (Terminal Node) : Child Node가 하나도 없는 노드 Sibling (Brother Node) : 동일한 Paren Node를 가진 노드 Depth : 트리에서 Node가 가질 수 있는 최대 Level 이진 트리 이진 트리 : 노드의 최대 Branch가 2인 트리 이진 탐색 트리(Binary Search Tree, BST) : 이진 트리에 다음과 같은 조건이 추가된 트리 왼쪽 노드

[코딩테스트] 파이썬 QUIZ - 리스트 슬라이싱(slicing) [내부링크]

주말 푹 쉬고 오셨나요? 월요일의 시작! 오늘의 파이썬 퀴즈, 여섯번째 날입니다. 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Sally와 함께 하는 여섯번째 퀴즈 시작합니다^^ Answer : D 오늘 퀴즈는 파이썬 리스트의 슬라이싱에 관한 퀴즈입니다. 슬라이싱은 'slicing = 나눈다'라고 생각하시면됩니다. 예제를 통해 슬라이싱에 대해 알아보면 >>> a = [1, 2, 3, 4, 5] >>> a[0:2] [1, 2] >>> a = [1, 2, 3, 4, 5] >>> b = a[:2] >>> c = a[2:] >>> b [1, 2] >>> c [3, 4, 5] 문제에서 List[2:4]를 모두 문자열 'a'로 변환했으므로 print(List)는 ['a', 'b', 'a', 'e']를 반환합니다. >

[코딩테스트] 파이썬 QUIZ - 리스트 item 제거 방법 [내부링크]

오늘은 파이썬 퀴즈, 세번째 날입니다. 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ 이번 문제는 두 개입니다:) Answer : A / D 파이썬에서 리스트에 저장된 값을 삭제하는 방법을 알아보겠습니다. 리스트에서 값 삭제를 위해서는 함수 사용 혹은 위치 또는 범위를 지정하면 됩니다. clear() : 리스트에 저장된 모든 item 삭제 pop(): index로 item 가져오면서 삭제 remove(): value로 item 삭제 item이 리스트에 여러개 있으면 가장 앞에 있는 것 하나만 삭제 del(): index, slicing 방법으로 item 삭제 예제를 통해 확인해보면 >>> sally = list(range(5)) >>> print(sally) [0, 1, 2, 3, 4] >>> sally.c

[코딩테스트] 파이썬 QUIZ - 리스트에서 인덱스로 아이템 가져오기 [내부링크]

오늘은 파이썬 퀴즈, 벌써 네번째 날입니다:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ 문제 들어가겠습니다~c Answer : C 지난 퀴즈 포스팅에서 '파이썬에서 리스트에 저장된 값 삭제'하는 방법 알아보았죠? pop() : index로 item 가져오면서 삭제합니다. 따라서 pop은 삭제하는 item을 리턴값으로 합니다. 여기서 중요한 것은 숫자 '1'을 삭제하며 리턴값으로 반환하는 것이 아니라 index로 item을 가지고 와야한다는 점의 유의해야 합니다. 따라서 이번 퀴즈에서는 num_list에서 Index[1]에 해당하는 '2'를 리턴값으로 반환하게 됩니다. >>> num_list = [3, 2, 1] >>> print(num_list.pop(1)) 2 오늘 퀴즈가 도움이 되셨다면 공감 버튼

[코딩테스트] 파이썬 QUIZ - 문자열 find() [내부링크]

이번 한 주 알차게 보내셨나요? 오늘은 즐거운 토요일에 함께하는 파이썬 퀴즈, 다섯번째 날입니다:) 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답안 원하시는 분은 첫 번쩨 댓글에 정답만 올려둘테니 댓글 확인해주세요~ 문제 들어갑니다! Answer : A 오늘 퀴즈는 파이썬 문자열 find 함수에 대한 것입니다. Syntax는 다음과 같습니다. string.find(찾을 문자) string.find(찾을 문자, 시작 Index) string.find(찾을 문자, 시작 Index, 끝 Index) find method는 '찾을 문자' 혹은 '찾을 문자열'이 존재하는지 확인하고 찾는 문자가 존재하면 해당 위치 index를 반환하고 찾는 문자가 존재하지 않으면 -1을 반환합니다. 만약 찾는 문자나 문자열이 여러 개 있다면 맨 처음 찾는 문자의 index를 반환합니다. 예제를 통해

[파이썬실습] 파이썬으로 크리스마스 트리 만들기:) [내부링크]

[Mission] '*' 이용하여 크리스마스 트리 만들기 크리스마스 트리 밑동 만들기 크리스마스 트리 높이는 입력 받을 것 크리스마스 트리 밑동과의 비율을 위해 높이에 제한 둘 것 line = int(input('4~30 사이에서 원하는 Tree 높이를 입력하세요. : ')) if 3 < line < 31 : for x in range(1, line * 2, 2): print((' ' * ((line * 2 - 1 - x) // 2)) + ('*' * x)) for y in range(1, 3): print(' ' * (line-2) + '***') else : print('잘못된 입력입니다. Tree 높이를 다시 입력해주세요.')

[파이썬실습] 파이썬으로 로또 당첨되자~ [내부링크]

[Mission] 5000원으로 로또 번호 추출하기 로또는 1부터 45까지의 숫자 중 6개를 임의 추출 로또 1게임은 1000원으로 종이 한 장에 5게임으로 이루어짐 로또 구매 후 출력된 종이에는 숫자가 오름차순으로 정렬 # 방법1 import random lotto = [] for i in range(5): num = random.sample(range(1, 46), 6) lotto.append(num) num.sort() print('이번 주에 혹시 내가..??') lotto # 방법2 lotto = [] for i in range(5): lotto_num = [] while True: num = random.randint(1, 45) if num not in lotto_num: lotto_num.append(num) lotto_num.sort() if len(lotto_num)==6: break lotto.append(lotto_num) print('이번 주에 혹시 내가..??

[데이터 자격증] 데이터 관련 자격증 종류 [내부링크]

이번 포스팅에서는 데이터 관련 자격증이 무엇들이 있는지 알아보려고 합니다. 데이터를 다룰 수 있는 실력이 중요하지만, 실력이 있음을 증명하기 위해 자격증을 많이들 취득하시지요? 오늘 소개하는 자격증은 취업/커리어에 도움이 되니 잘 읽어주시면 좋을 것 같아요:) 그 자격증들이 무엇일까요? (사실 대표이미지에 적혀 있어요^^;) SQLP / SQLD DAP / DAsP ADP / ADsP 바로 위 세가지인데요! 하나씩 함께 알아보도록 해요:) SQLP / SQLD DB에 접근하여 데이터 추출, 조작을 하기 위해서는 DB(DataBase)와 데이터 모델링에 대한 지식을 바탕으로 적절한 쿼리를 작성할 수 있어야겠지요? 그 능력을 검증하는 시험이라고 생각하시면 될 것 같습니다. K Data에서 발급하는 민간자격증이지만 '국가공인 민간자격증'으로 등록되어 공신력이 높고 수요가 늘어나고 있습니다! SQLP는 Structured Query Language Professional로 SQL 전문가를

[코딩테스트] 파이썬 QUIZ - bool(불리언) 연산 [내부링크]

앞으로 코딩테스트를 대비하여 난이도 Easy ~ Hard까지 퀴즈를 내보려고 합니다. 오늘은 파이썬 퀴즈, 첫번째 날입니다. 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : B 불(Bool)은 참(True)와 거짓(False)을 나타내는 자료형으로 참/거짓 2가지 값만을 가질 수 있습니다. (True/False는 파이썬 예약어이므로 true, false처럼 소문자가 아닌 첫글자 대문자로 사용 해주세요.) 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면/ 숫자 0/ None → 거짓 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있지 않으면 → 참 예제를 통해 확인해보면 >>> bool('python') True >>> bool('') False >>> bool(' ') True 문

[코딩테스트] 파이썬 QUIZ - 문자열 split() [내부링크]

오늘은 파이썬 퀴즈, 두번째 날입니다. 포스팅 보시는 분들은 답이 무엇인지 먼저 고민! 해보시고 스크롤을 내려 정답을 확인해보세요. 정답과 해설은 화면 스크롤하시면 확인하실 수 있습니다:) 정답만 원하시는 분은 첫 번째 댓글에 정답만 올려둘테니 댓글 확인해주세요~ Answer : C 파이썬의 Split 함수는 문장절을 나눠서 리스트로 만들 때 사용하는 함수입니다. Syntax는 다음과 같습니다. 문자열.split() 문자열.split('구분자') 문자열.split('구분자', 분할횟수) 문자열.split(sep='구분자', maxsplit=분할횟수) sep : seperator. 문자열을 나누는 기준 maxsplit : 문자열을 나누는 횟수 (기본값 -1, 제한 없이 모두 나눈다.) 즉, split 함수는 문자열을 maxsplit 횟수만큼 sep 구분자를 기준으로 문자열을 구분하여 잘라서 리스트로 만들어줍니다. 예제를 통해 확인해보면 >>> text = 'Hello world' >>

[데이터 자격증] 3일 만에 합격하는 SQLD(SQL개발자) [내부링크]

안녕하세요:) 데이터 다루는 샐리입니다~ 이번 포스팅은 2022.11.05 토요일에 응시한 제 47회 SQLD 자격증 공부 방법 및 합격 후기입니다! 저는 비전공자이고, 기획자 직무로 일하며 공부를 함께 진행하는 입장으로 부족한 시간을 쪼개 시험 3일 전부터 퇴근 후 4시간씩 공부하고 합격했습니다:) 물론 3일 만에 가능한 시험이니 쉽게 생각하고 따세요~가 아닙니다!! 어려운 시험이지만 3일 남았다고 포기하지 마시라고 경험 공유하는 포스팅입니다c SQL 자격증 개요 SQLD(SQL Developer) 자격증은 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 응용 소프트웨어를 개발하면서 데이터를 조작,추출하는데 있어서 정확하고 최적의 성능을 발휘하는 SQL을 작성할 수 있는 개발자임을 증명하는 국가공인 자격시험입니다. 더 자세한 SQLD(SQL 개발자)/SQLP(SQL 전문가) 자격 소개 및 시험 주요 내용은 데이터자격검정 홈페이지에서 확인 가능하시니, 궁금하신 분은 c 링크 눌러

[데이터] 자료구조 - 스택(Stack) [내부링크]

자료구조 - 스택(Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 LIFO(Last-in, First-Out) 방식 대표적 스택의 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 주요 기능 push() : 데이터를 스택에 넣기 pop() : 데이터를 스택에서 꺼내기 스택 구조와 프로세스 스택 스택 구조는 프로세스 실행 구조의 가장 기본임 함수 호출 시에 프로세스 실행 구조를 스택과 비교 이해 필요 자료구조 스택의 장단점 장점 단순한 구조로 구현 용이함 데이터 저장/읽기 속도가 빠름 단점 데이터 최대 개수를 미리 정해야함 : 파이썬의 경우, 재귀 함수는 1,000번까지로 호출수 제한 저장 공간의 낭비가 발생할 여지가 있음 : 미리 최대 갯수만큼 저장 공간 확보해야함 파이썬 리스트 기능에서 제공하는 메소드로 스택 사용해보기 append(push), pop 메소드 이용하

[파이썬실습] 파이썬으로 계산기 만들기 [내부링크]

[Mission] 사칙연산 가능한 계산기 만들기 두 개의 숫자를 입력받아 사칙연산(+, -, ⨯, ÷)이 가능하도록 한다. 사칙연산 외 계산을 시도할 경우, 잘못된 선택이라 출력한다. def add(x, y): return x + y def subtract(x, y): return x - y def multiply(x, y): return x * y def divide(x, y): return x / y print('사칙연산을 선택하세요.') print('1. 더하기') print('2. 빼기') print('3. 곱하기') print('4. 나누기') choice = input('(1/2/3/4)중 원하는 연산을 선택하세요 :') num1 = int(input('첫번째 숫자 : ')) num2 = int(input('두번째 숫자 : ')) if choice == '1': print(num1, '+', num2, '=', add(num1, num2)) elif choice == '2

[데이터] 자료구조와 알고리즘 [내부링크]

자료구조란? 자료구조 = 데이터 구조(Data Structure) 대량의 데이터를 효율적으로 관리할 수 있는 데이터 구조를 의미 코드 상에서 효율적으로 데이터 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터 구조화 어떤 데이터 구조 사용하느냐에 따라 코드 효율이 달라짐 효율적 데이터 관리 효율적 데이터 관리의 예시 우편번호 : 5자리 우편번호로 국가 기초구역 제공 학생관리 : 학년, 반, 번호를 학생에게 부여 후 학생부 관리 대표적 데이터 구조 배열(Array), 큐(Queue), 스택(Stack), 링크드 리스트(Linked List), 해쉬, 트리, 힙 등 현실 세계에서의 가장 대표적인 예시는 '사전' 알고리즘(Algorithm)이란? 문제 해결을 위한 절차 또는 방법 어떤 문제에 대하여 특정 Input 제공 시, 기대하는 Output 얻을 수 있도록 만드는 프로그래밍 자료구조와 알고리즘의 중요성 사용 데이터 구조와 알고리즘을 쓰느냐에 따라 성능이 매우 달라진다. 알고리즘

[데이터] 자료구조 - 배열(Array) [내부링크]

자료구조 - 배열(Array) 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 자료구조 파이썬에서는 리스트 타입이 배열 기능 제공 배열(Array)의 필요성 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 장점 빠른 접근 가능 : 인덱스 번호로 접근 단점 데이터 추가/삭제의 어려움 : 미리 최대 길이 지정 필요 파이썬과 배열 파이썬에서는 리스트 타입이 배열 기능 제공 인덱스로 리스트 접근 [Mission] 위 2차원 배열에서 7, 8, 9 순서대로 출력하기 print(data_list[2][0]) print(data_list[2][1]) print(data_list[2][2]) 파이썬 range range(stop) : range(5)는 0, 1, 2, 3, 4 range(start, stop) : range(1, 6)은 1, 2, 3, 4, 5 range(start, stop, step) : range(0, 10, 2)는 0, 2

[데이터] 자료구조 - 큐(Queue) [내부링크]

자료구조 - 큐(Queue) 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 FIFO(First-In, First-out), LILO(Last-in, Last-Out) 방식 스택(Stack)과 반대 (자료구조 - 스택(Stack) 포스팅) 주요 기능 Enqueue/ put() : 큐에 데이터를 넣는 기능 Dequeue/ get() : 큐에서 데이터를 꺼내는 기능 파이썬 큐(Queue) 라이브러리 활용 큐(Queue) 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공 Queue() : 가장 일반적인 큐 자료구조 LifoQueue() : 나중에 입력된 데이터가 먼저 출력되는 구조 (like 스택 구조) PriorityQueue() : 데이터마다 우선순위 부여하여 우선순위 높은 순으로 데이터 출력되는 구조 큐 라이브러리 활용_Queue()로 큐 만들기 '1'을 나중에 input → .get 통해 빼낼 때 '1' output 큐

[디자인 자격증] 3일 만에 합격하는 GTQ 1급 꿀팁:) [내부링크]

안녕하세요:) 데이터 다루는 샐리입니다~ 오늘은 2020년 취득했던 GTQ(그래픽기술자격) 1급을 소개하려고 합니다. GTQ 자격증 개요 GTQ(Graphic Technology Qualification)는 컴퓨터그래픽 디자인 능력을 평가하는 국가공인자격 시험입니다. 실무 활용성을 높이기 위해 실기 시험방식만 채택하여 이론 시험은 없어요:) 시험 개요는 하기와 같아요. * 시험 접수 기간에 고사장 별로 응시 가능한 S/W 버전 확인 가능 제가 응시한 GTQ 1급은 4문항으로 [1번_20점] 고급 Tool 활용 - 펜툴 이용하여 패스 저장 및 여러 도구를 이용한 이미지 제작 [2번_20점] 사진편집 응용 - 이미지 색상/명도 조절 등 이미지 변형 및 효과 [3번_25점] 포스터 제작 - 레이어 편집 및 문자를 이용한 효과 [4번_35점] 웹 페이지 제작 - 1, 2, 3번 문항 요소들을 활용한 웹 페이지 제작 난이도는 2 → 1 → 3 → 4 순으로 어려워집니다. GTQ1급 자격증 공

[디자인 자격증] 3일 만에 합격하는 ACA(ACP) 자격증 - 모의고사(기출) 자료 제공 [내부링크]

안녕하세요:) 이번 포스팅은! 3일 만에 합격하는 ACA 자격증(현재는 ACP로 불림)입니다. 저는 2020년 10-11월에 ACA Photoshop/ Illustrator/ InDesign CC 2015 3가지를 모두 취득했고 이 자격증에 대해 알아보도록 할게요! ACA(ACP) 자격증 개요 ACP는 Adobe사 소프트웨어 사용 능력을 공인하는 국제자격증입니다. 2021년 8월까지는 ACA(Adobe Certified Associate)라고 불렸지만, 그 이후부터는 ACP(Adobe Certified Professional)이라 불립니다. [자격명] Adobe Certified Associate(ACA) → Adobe Certified Professional(ACP) [과목] Photoshop(한국어), Illustrator(한국어), InDesign(한국어), Premiere(한국어), After Effects(영어), Animate(영어), Dreamweaver(영어) [버전]

[파이썬실습] 파이썬으로 구구단 출력하기 [내부링크]

[Mission] 최대한 짧은 코드로 구구단 출력하기 for문 활용하기 print('구구단을 출력합니다.') for i in range(2, 10): print('----------[' + str(i) + '단]----------') for j in range(1, 10): print(f'{i} X {j} = {i*j}') * 코드 실행 화면은 편의상 5단 일부까지만 제공 파이썬으로 구구단 출력하기가 도움이 되셨다면 공감 부탁 드립니다

[파이썬실습] 파이썬으로 1부터 n까지의 합 구하기 [내부링크]

[Mission] 1부터 n까지의 숫자 합 구하기 for문 활용하기 리스트 활용하기 sum_list = [] for i in range(101): sum_list.append(i) sum(sum_list) 파이썬으로 리스트 활용한 1부터 n까지의 합 구하기가 도움이 되셨다면 공감 부탁 드립니다

[파이썬실습] 파이썬으로 BMI 계산하기 [내부링크]

[Mission] 키와 몸무게를 입력 받아 BMI 계산하기 BMI = 체중(kg) / 키(m)2 BMI 20 미만: 저체중/ 20 ~ 24 미만: 표준체중 / 24 ~ 30 미만: 과체중 / 30 이상: 비만 키는 cm로 입력 받고, 몸무게는 kg으로 입력 받기 name = input('이름을 입력하세요: ') height = input('키를 입력하세요: ') height = float(height) / 100 weight = input('몸무게를 입력하세요: ') weight = float(weight) bmi = weight / (height * height) print(f'{name}님의 bmi 지수는 {bmi}입니다.') if bmi < 20: print(f'bmi에 따라 구분한 {name}님의 체중은 저체중입니다.') elif 20 <= bmi < 24: print(f'bmi에 따라 구분한 {name}님의 체중은 표준체중입니다.') elif 24 <= bmi < 30: p

[파이썬실습] 파이썬으로 스무고개 - 숫자 Up&Down [내부링크]

[Mission] 숫자 Up & Down 스무고개 게임 만들기 컴퓨터와 플레이어를 변수로 지정 플레이어 입력 숫자와 컴퓨터 숫자 비교하여 'Up' or 'Down' 출력 플레이어 입력 숫자와 컴퓨터의 숫자가 같으면 '정답입니다' 출력 print('이제 스무고개 게임을 시작합니다.') print('-------------------------------------------') com = int(input('1~100 사이의 숫자를 입력하세요: ')) player = int(input('맞출 숫자를 입력하세요: ')) tries = 0 if com > player: print('Up') elif com < player: print('Down') else: print('정답입니다.') 파이썬으로 간단 스무고개가 도움이 되셨다면 공감 부탁 드립니다

[파이썬실습] 파이썬으로 스무고개 - 숫자 Up&Down (업그레이드버전) [내부링크]

[Mission] 숫자 Up & Down 스무고개 게임 만들기 맞춰야하는 숫자 : 1~100 사이의 숫자 랜덤 추출 입력 숫자와 랜덤 숫자를 비교하여 'Up' or 'Down' 출력 입력 숫자와 랜덤 숫자가 같을 경우, 몇 번 만에 맞췄는지 출력 맞출 수 있는 기회는 10번으로 제한 import random random_num = random.randrange(1, 101, 1) tries = 0 print('1~100 사이의 숫자로 스무고개 게임을 시작합니다.') print('-------------------------------------------') while (random_num != num): num = int(input('1~100 사이의 숫자를 입력하세요: ')) if (num > random_num): print('Down') tries += 1 elif (num < random_num): print('Up') tries += 1 else: tries += 1 pr

[파이썬] 주피터 노트북 단축키 [내부링크]

지난 주피터 노트북 사용법 포스팅은 잘 보시고 오셨나요? 이번 포스팅은 말씀드린 대로 알아두면 퇴근이 빨라진다! 단축키와 마크다운에 대해 알아볼게요. 주피터 노트북 단축키 * 대문자/소문자 여부는 관계 없습니다. 식별을 위해 대문자로 적었을 뿐이에요:) 마크다운 사용법 Headings Quote Line List 오늘 포스팅이 도움이 되셨다면 공감 버튼 부탁드려요

[코딩테스트] 소수(Prime number) 찾기 [내부링크]

두 수 사이에 있는 소수(Prime Number) 찾기 [QUESTION] 2와 입력받은 숫자 n 사이에 존재하는 소수(Prime Number)를 출력하는 프로그램을 작성한다. [입력] 자연수 n을 입력 받는다. [출력] 입력 받은 두 수 사이에 존재하는 소수를 리스트로 출력한다. 중학교 때 배운 '소수(Prime Number)' 기억 하시나요? 소수는 1과 자기 자신만을 약수로 가지는 수입니다. 2 이상 30 미만의 소수를 나열하면 다음과 같아요. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 저의 사고의 흐름은 다음과 같았어요. 소수를 구하는 함수 선언 - 소수를 구할 빈 리스트 생성 - .isprime() 함수를 통해 소수인지 확인하려고 해요. 그리고 2부터 n-1까지의 숫자들 중 나누어 떨어지게 만드는 수(약수)가 있으면 소수가 아니므로 생성해둔 리스트에 숫자를 추가해보도록 할게요. pnlist = [] def isPrime(n): for i in range(

[코딩테스트] n명이 나눠먹을 피자 개수 구하기 [내부링크]

n명이 나눠먹을 피자 개수 구하기 [QUESTION] 피자 조각을 s개로 나누고 피자를 나눠먹을 사람의 수가 n일 때, 모든 사람이 피자를 한 조각 이상 먹기 위한 피자 개수를 출력하는 프로그램을 작성한다. [입력] 피자 조각 slice와 사람의 수 n을 입력 받는다. [출력] 피자집에서 제공해야 할 피자 개수를 출력한다. 오늘은 소수점 제거 함수 ceil(), floor(), round()에 대하여 공부해볼 겁니다. ceil() 함수 ceil() 함수는 한 마디로 하면 올림 함수입니다. 즉, 소숫점 아래 숫자가 있으면 소숫점 아래를 버림하고 정수 부에 1을 더해 주고, 소숫점 아래 숫자가 없으면 그대로 정수를 반환합니다. >>> import math >>> math.ceil(1.2) 2 >>> math.ceil(7.6) 8 >>> math.ceil(10) 10 2. floor() 함수 floor() 함수는 한 마디로 버림 함수입니다. 말 그대로, 소숫점 아래를 그냥 버립니다. >>

[코딩테스트] 리스트(List) 배열 뒤집기 [내부링크]

주어진 리스트(List) 원소 배열 뒤집기 [QUESTION] 정수가 들어 있는 리스트의 원소의 순서를 거꾸로 뒤집은 배열을 return하는 프로그램을 작성한다. [입력] 정수로 구성된 리스트가 이미 존재하고, 순서를 뒤집은 배열을 return하도록 한다. [출력] 순서 뒤집힌 배열 이번 포스팅은 매우 쉬워서 포스팅을 작성할까 고민했지만, 공부할 내용이 있어서 만들어봤습니다. Python Array[::] 활용법에 대해 공부해 볼 건데요. array[A:B:C]의 의미를 파악해보면 index A부터 index B까지 C의 간격으로 배열 만들기입니다. A가 존재하지 않으면 '처음부터'를 뜻하고, B가 존재하지 않으면 '가능한 끝까지', C가 존재하지 않으면 '한 칸 간격으로'라는 뜻입니다. 여기서 B가 존재하지 않을 때, '가능한 끝까지'라는 의미는 C, 즉 step이 양수이면 마지막 index까지, step이 음수이면 첫 index까지이므로 '가능한'이라는 단어가 붙었습니다. 예를

[코딩테스트] 리스트(List) 배열의 유사도 [내부링크]

리스트 배열의 유사도 판단하기 [QUESTION] 두 리스트 a와 b 내 존재하는 중복된 원소의 개수를 return하는 프로그램을 작성한다. 오늘 문제는 set().intersection()을 활용하는 문제입니다. 리스트에서 중복된 것을 찾기 위해 사용하는 것으로 예시를 통해 알아볼게요. >>> a = [1, 2, 3, 4] >>> b = [3, 4, 5, 6] >>> common = set(a).intersection(b) {3, 4} 위 소스코드에서 볼 수 있듯이 반환되는 값의 type은 set입니다. 따라서 원하는 type에 따라 list()/ str() 등으로 형변환 해주어야 합니다. 리스트로 return 되길 원한다면 >>> a = [1, 2, 3, 4] >>> b = [3, 4, 5, 6] >>> common = list(set(a).intersection(b)) {3, 4} 문제에서처럼 중복되는 것의 개수를 구하기 위해서는 다음과 같습니다. >>> a = [1, 2, 3

[코딩테스트] 피보나치(Fibonacci) 수 구하기 [내부링크]

피보나치 수 구하기 [QUESTION] 첫째항과 둘째항이 3인 피보나치(Fibonacci) 수열의 n번째 항을 출력하는 프로그램을 작성한다. [입력] n번째 피보나치 수를 구하고 싶을 때, 자연수 n을 입력한다. [출력] n번째 피보나치 수를 출력한다. 피보나치 수열에 대해서 들어보셨나요? 저는 고등학생 때 '수열' 단원을 배울 때 배워보았고, 워낙 수를 좋아했던 저이기에 길을 가다가 자동차 번호판의 숫자가 피보나치 수열을 이루면 괜시리 행운이 올 것 같고 그랬답니다:) 오늘은 그 피보나치 수열을 이용하여 n번째 수를 구해보려고 합니다. An = An-1+ An-2 (n>=2)인 수열 An을 피보나치 수열이라고 합니다. A1 = 1, A2 = 2이고 수열 An이 피보나치 수열이라고 할 때, 각 항을 나열하면 예를 들어보면 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … 가 됩니다. 제가 코드를 작성하고 공부하면서 느끼는 점은.. 하나의 결과를 내기 위해 수 많은 방

[파이썬] 아나콘다 설치 (라이브러리, 패키지, 주피터 노트북을 한 번에!) [내부링크]

데이터분석 및 시각화를 하면서 다양한 라이브러리를 제공하는 파이썬(Python)을 주로 사용하였습니다. 가장 쉽고, 가장 강력한 프로그래밍 언어라는 말이 아깝지 않죠? 파이썬의 매력에 흠뻑 빠져있습니다..ㅎㅎ 파이썬 개발 도구는 파이썬 공식 홈페이지에서 다운로드 가능하지만, 파이썬과 기본 라이브러리만 설치되고 필요 패키지들을 수작업으로 찾아서 설치해야 하는 번거로움이.. ㅜㅜ 이러한 불편함을 해결해주는 것이 바로 아나콘다(Anaconda)입니다. 아나콘다(Anaconda)란? 아나콘다는 기본 라이브러리와 가장 많이 사용하는 패키지, 주피터 노트북을 한 번에 설치할 수 있는 파이썬 배포판으로 수백 개의 파이썬 패키지를 포함하고 있습니다. 그럼 함께 라이브러리, 패키지, 주피터 노트북(Jupyter Notebook)을 설치 해 볼까요~? 아나콘다 배포판 설치 01 아나콘다 배포판 설치 URL을 클릭해주세요:) 02 노란색 동그라미 친 가운데 부분 Download를 눌러줍니다:) 03 아

[파이썬] 주피터 노트북 사용 방법 [내부링크]

아나콘다 설치 포스팅은 잘 보고 오셨나요? 개발자는 보통 통합 개발 환경이라고 하는 IDE(Integrated Development Environment)를 이용하여 프로그램을 개발합니다. 파이썬용 IDE에는 주피터 노트북(Jupyter Notebook), 비주얼 스튜디오 기반의 PTVS, 이클립스 기반의 PyDev, JetBrains의 파이참(Pycharm)등이 있습니다. 오늘 포스팅에서는 이 중에서 주피터 노트북에 대해서 알아볼게요 주피터 노트북(Jupyter Notebook)이란? 주피터 노트북은 코드, 텍스트, 데이터 시각화를 비롯한 다른 출력을 대화형(IPython 커널 기반)으로 구성할 수 있는 웹 기반 파이썬 에디터입니다. 주피터 노트북은 웹 브라우저상에서 파이썬 코드를 셀 단위로 나누어 입력, 실행이 가능하여 인터랙티브한 동작(대화형)이 가능하고 차트, 표 등의 결과값 출력을 직관적으로 바로 볼 수 있으며 Github에 주피터 노트북의 결과 출력 방식 그대로 올릴 수

데이터 기반 의사결정의 시대 [내부링크]

저는 IT 기업에서 콘텐츠/서비스 기획 직군에서 근무하였는데요! 연관 부서와 의사소통을 할 당시에 가장 많이 목말랐던 부분이 데이터를 기반으로 한 의사결정이었습니다. 도메인(Domain) 지식을 바탕으로 경험 기반 안건을 내고 가설을 세우다보니 가설이 맞는지에 대한 정확한 수치를 확인할 수 없었고, 그 목마름을 해결하기 위해 '데이터 분석'에 관심을 갖게 되었습니다. 가장 효율적인 설득을 위해 01 수치 기반의 정확한 근거를 가지고 02 모두가 알기 쉬운 용어로 03 시각화 하여 의견을 제시 상기 세 가지가 필요하다는 것을 느꼈습니다. 우리는 스마트 디바이스를 통해 더 많은 돈과 시간을 쓰고 있고, 그 데이터를 한 데 모으면 우리의 삶을 재구성할 수 있습니다. 우리의 삶 자체가 바로 메타버스가 되어 가고 있는 시대 속에서 데이터의 가치는 새로운 석유이기도 하고, 금광이기도 합니다. 도대체 데이터(Data)란 무엇이고, 데이터분석(Data Analysis)이란 무엇일까요? 데이터(Da

데이터 직무 이해하기:) [내부링크]

오늘은 '데이터'와 연관된 직무에 대해 알아보려고 해요. '데이터'에 관심을 가진 이후로 심플하게! 딱 관련 직무를 속시원하게 누가 정리해줬으면.. 하는 바람이 있었는데 오늘은 제가 저와 같은 갈증을 느끼시는 분들께 도움이 되었으면 하는 바람입니다! 데이터 직무 데이터와 연관이 없는 분야가 이제는 없죠? 기본적으로 데이터 직무는 데이터와 연관된 다양한 업무 또는 업무들의 집합을 의미하고 있습니다. 먼저 '데이터 자체에 집중'하느냐 '데이터를 활용하는 것에 집중'하느냐에 따라 구분을 먼저 해보려고 해요. 데이터 집중 직무를 크게 3가지로 분류해보면 다음과 같아요! 데이터를 수집하고 관리하는 데이터 엔지니어 데이터를 토대로 현재 상황을 분석하는것에 집중하는 데이터 분석가 데이터로 미래를 예측하는 데이터 사이언티스트 데이터 활용 직무를 크게 4가지로 분류해보면 다음과 같아요! 고객과 커뮤니케이션하고 분석하는 CRM(Customer Relationship Management) 마케터 광고

[데이터 직무] 데이터 집중 직무 [내부링크]

데이터 직무 이해하기 편을 못 보셨다면? c 눌러주세요:) 오늘은 데이터 직무 이해하기 2편! 데이터 집중 직무에 대해 알아보려고 합니다. 개발자 같은 데이터 엔지니어 데이터 엔지니어는 다음과 같은 업무를 담당해요:) 어떤 방식으로 데이터 수집할지 데이터를 어떻게 쌓고 관리할지 데이터 분석에 용이하도록 어떻게 데이터를 변환할지 고민하여 데이터 수집을 위한 파이프라인을 구축, 운영합니다. 기획자 같은 데이터 분석가 데이터 분석가는 다음과 같은 업무를 담당해요:) 어떤 데이터를 수집할 것인지 정의 비지니스 주요 지표를 정의 및 분석 데이터를 시각화하여 보다 쉽게 파악할 수 있게 그를 통해 인사이트를 도출 합니다. 수집한 데이터를 분석, 시각화하여 타부서와 소통해야 하므로 기술적인 면과 함께 커뮤니케이션 스킬이 중요해요~ 데이터를 토대로 현재 상황을 분석하는 것에 집중하는 경향이 있습니다:) 연구원 같은 데이터 사이언티스트 데이터 사이언티스트는 다음과 같은 업무를 담당해요:) 데이터를 수

[데이터 직무] 데이터 활용 직무 [내부링크]

데이터 직무_데이터 집중 직무포스팅을 못 보셨다면? c 눌러주세요:) 오늘은 데이터 직무 이해하기 마지막 편! 데이터 활용 직무에 대해 알아보려고 합니다. 고객 중심 CRM 마케터 CRM(Customer Relationship Management) 마케터는 다음과 같은 업무를 담당해요:) 고객과 커뮤니케이션하고 분석 기존 고객들이 더 많은 가치를 창출하도록 관리 고객 데이터에 기반한 마케팅 전략을 세우고 결과를 분석 합니다. 회사의 고객 데이터로부터 인사이트를 얻어야하므로 회사 DB(DataBase)에서 데이터를 추출하기 위해 SQL 활용 능력, 웹/모바일 트래킹 툴(Google Analytics) 활용 능력이 요구됩니다. 광고 최적화 진행하는 퍼포먼스 마케터 퍼포먼스 마케터는 다음과 같은 업무를 담당해요:) CRM 마케터와 달리 광고를 통해 효과적으로 새로운 고객을 유치 광고비용 최적화를 통해 비효율적인 광고를 줄일 수 있도록 합니다. 퍼포먼스 마케터는 디스플레이 광고(Displa