https://school.programmers.co.kr/learn/courses/30/lessons/120802간단한 사칙연산이니 덧셈 기호를 활용해서 풀었다.람다를 잘 모르기도 하고, 이런 문제는 람다 연습용으로 좋아보인다.내장 함수인 sum() 을 사용
https://school.programmers.co.kr/learn/courses/30/lessons/120803간단한 정수 사칙연산이므로 뺄셈 기호를 통해 풀었다.역시 람다함수가 한 줄 코딩에 장점이 있다보니 간단한 문제에서 인기가 많아보인다.리스트 뺄셈에
https://school.programmers.co.kr/learn/courses/30/lessons/120804기본적인 사칙연산으로 곱셈 기호 사용하여 풀었다.대부분 곱셈을 덧셈으로 풀거나.. 람다를 사용했는데 파이썬에서 포인터처럼 사용한게 인상 깊었다.문
https://school.programmers.co.kr/learn/courses/30/lessons/120805이번에는 간단한 나눗셈처럼 보이지만, 입출력 예시처럼 정수로 출력되야 하므로 // 을 사용했다.파이썬의 기본 나눗셈 기호인 / 는 실수형으로 출력
https://school.programmers.co.kr/learn/courses/30/lessons/120806// 정수 나눗셈 연산자를 알고 있었지만, int()로 소수점을 버리는 방법으로도 풀었다.역시 정수 나눗셈 연산자로 접근한 것을 볼 수 있다.정수
https://school.programmers.co.kr/learn/courses/30/lessons/120807== 비교 연산자를 통해 문제에서 시키는대로 반환값을 주도록 했다.파이썬 조건부 표현식(Conditional Expression)을 활용한 코드로
https://school.programmers.co.kr/learn/courses/30/lessons/120808어렸을 때 수학 문제 대충 한 번에 암산하는 습관 때문에 처음엔 살짝 당황했다.통분과 기약분수를 어떻게 만드느냐 묻는 문제였던 것 같다.기약분수를
https://school.programmers.co.kr/learn/courses/30/lessons/120809주어진 배열의 모든 값을 순회하며 해당 값에 2배한 값을 answer 배열에 담았다.표현식 for 항목 in 반복가능객체 if 조건문 형태를 "리
https://school.programmers.co.kr/learn/courses/30/lessons/120810'%' 나머지 연산자를 통하여 몫은 구하지 않고 간단하게 나머지를 반환하였다.지난번에 학습했던 divmod() 함수를 활용하여 풀어도 될 것 같았
https://school.programmers.co.kr/learn/courses/30/lessons/120811문제에서 시키는대로 정렬했을 때, 중앙에 오는 값, 주어진 배열을 정렬한 후에 길이의 절반 인덱스의 값을 반환했다.array.sort()의 결과를
https://school.programmers.co.kr/learn/courses/30/lessons/120812최빈값이 여러 개면 -1을 반환하라는 조건이 까다로운 문제였다.최빈값이 몇 개인지 체크해줘야 하니까 count 배열에 횟수를 담자.내가 한 풀이와
https://school.programmers.co.kr/learn/courses/30/lessons/120813지난번에 학습한 리스트 컴프리헨션을 이용해보았다.확실히 한 줄로 깔끔하지만 아직 코드를 분석하는 시간이 걸린다.간단하게 1부터 n + 1까지 반복
https://school.programmers.co.kr/learn/courses/30/lessons/1208147조각으로 나누어 떨어지면 최소 판 수를 구하기 위해 n / 7을 반환하고, 나누어 떨어지지 않으면 한 조각 이상 먹어야 하므로 n // 7 +
https://school.programmers.co.kr/learn/courses/30/lessons/120815사실 처음엔 lcm() 내장 함수를 처음에 써서 풀었지만 오답이 나왔다.프로그래머스 파이썬 버전이 3.8.5인데, 최소공배수를 반환해주는 lcm(
https://school.programmers.co.kr/learn/courses/30/lessons/120816같은 조각 수를 먹어야하는 문제와 다르게 한 조각 이상만 먹으면 되니 편했다.입출력 예에서 힌트를 얻었다. 나누어 떨어지면 ceil()이 어차피
https://school.programmers.co.kr/learn/courses/30/lessons/120817평균을 구하는 건 쉬우니까..! 간단한 내장 함수들로 풀었다.고맙게 소수 부분을 언급해 주었다.전공 강의 빅데이터분석 시간에 넘파이, 판다스 등
https://school.programmers.co.kr/learn/courses/30/lessons/120818문제에서 시키는대로 직관적으로 풀었다.간단하지만 핵심은 높은 가격 조건부터 분기시킨 부분이다.낮은 가격 조건부터 분기하면 높은 가격들이 포함되어서
https://school.programmers.co.kr/learn/courses/30/lessons/120819간단한 계산 문제라서 바로 배열 초기화하면서 반환했다.정수로된 몫과 나머지를 나누어 구할 수 있다면 풀 수 있는 문제 같다.벌써 3번째 등장하는
https://school.programmers.co.kr/learn/courses/30/lessons/1208202022년 기준이라는 점만 인지하면 쉬웠던 문제이다.태어날때부터 1살이니까 +1 해주기.다 똑같은 방식으로 풀었다. 그만큼 간단하다 :)변수에 저
https://school.programmers.co.kr/learn/courses/30/lessons/120821reverse()를 사용할지, 슬라이싱을 사용할지 고민을 했던 문제.reverse()는 함수를 사용하니 시간복잡도가 더 들지 않을까? 라는 생각으
https://school.programmers.co.kr/learn/courses/30/lessons/120822처음부터 끝까지 인덱스 역방향으로 반환하기reverse() 함수도 생각했지만, 단순히 반환만 하는 문제라 슬라이싱으로 반환했다.reverse()
https://school.programmers.co.kr/learn/courses/30/lessons/120823입력받은 n 번 만큼 반복문을 돈다.\*을 1개부터 n개까지 출력해야 하지만, i가 0부터 시작하니 i + 1만큼 출력하기.\\n로 줄을 나누고,
https://school.programmers.co.kr/learn/courses/30/lessons/120824정답을 담은 answer 배열을 선언하고, num_list에 있는 원소들을 하나씩 꺼내 홀짝을 검사하고 answer의 0번 인덱스에는 짝수, an
https://school.programmers.co.kr/learn/courses/30/lessons/120825빈 문자열에 각 문자를 n번씩 반복하는 코드를 작성했다.이 문제의 경우 + 연산보다 join 함수 사용이 시간복잡도 최적화가 가능하다.간단하거나,
https://school.programmers.co.kr/learn/courses/30/lessons/120826replace() 함수를 통해 간단하게 letter을 제거한 문자열을 반환했다.replace() 함수를 모를때를 가정하면 제일 좋아보이는 코드였다
https://school.programmers.co.kr/learn/courses/30/lessons/120829경계값을 주의하며 간단하게 조건문으로 반환하여 풀었다.가장 많은 사람들이 풀이한 방식이다.내 코드와 상당히 비슷해보이지만, elif 구문을 사용해
https://school.programmers.co.kr/learn/courses/30/lessons/120830양꼬치 10인분 정수 나눗셈으로 서비스 개수 파악하고 계산했다.가독성이 있어보이진 않는 느낌이다.음료수만 서비스고 k가 음료수니 괄호로 묶어서 풀
https://school.programmers.co.kr/learn/courses/30/lessons/1208311부터 n까지 짝수 검사 후 짝수는 더하도록 간단하게 풀이했다.아마 continue 를 묻는 문제가 아니였을까 싶다.0부터 n까지 2씩 넘어간다는
https://school.programmers.co.kr/learn/courses/30/lessons/120833문제 그대로 슬라이싱을 활용해 자른 배열을 반환했다.슬라이싱 대신 반복문을 활용한 풀이이다.슬라이싱을 반복문으로도 풀 수 있다.하지만, 변수 저장
https://school.programmers.co.kr/learn/courses/30/lessons/120834age를 문자로 형 변환 후, 한 글자씩 떼어 a의 아스키코드 값인 97을 더하여 문제 조건에 맞추었다.문자열의 변경이 많을것 같아, join 함
https://school.programmers.co.kr/learn/courses/30/lessons/120835응급도인 emergency 배열의 크기가 클 수록 응급도가 높은것이니, 인덱스를 활용하기 위해 역순으로 정렬하고, 출력은 0번이 아닌 1번 부터니
https://school.programmers.co.kr/learn/courses/30/lessons/120836문제에 주어진 조건대로 곱해서 n 인 자연수의 순서쌍의 개수를 반환했다.순서쌍을 검사하는 코드는 동일하지만 이를 배열에 담고 len() 함수로 개
https://school.programmers.co.kr/learn/courses/30/lessons/120837초보같지만.. 문제 그대로 풀었다..딱 맞게 최소한의 병력이므로 장군개미 수부터 차례로 구했다.머리가 띵.. 따로 배열에 값을 저장하지 않고, h
https://school.programmers.co.kr/learn/courses/30/lessons/120838모스부호 값들을 직접 딕셔너리에 저장하여 비교했다.역시 딕셔너리를 통해 풀이했다.하지만 공백으로 나뉜 문자열을 리스트 컴프리헨션으로 바로 mors
https://school.programmers.co.kr/learn/courses/30/lessons/120839rsp 를 순회하며 각 게임마다 이기는 경우의 수를 문자열에 더하여 재생성했다.딕셔너리 초기화할 때 헷갈리는것만 제외하면 이기는 경우를 저장해놓고
https://school.programmers.co.kr/learn/courses/30/lessons/120840수학을 다 잊었나.. 순열과 조합이 너무 헷갈려서 그냥 힌트에 있는 값 계산해서 풀었다..역시 조합인걸 확신하면 너무 쉽게 풀이가 가능하다.순서를
https://school.programmers.co.kr/learn/courses/30/lessons/120841x 좌표가 양수일 때, 음수일 때를 기준으로 분기시켰다.대부분 나와 비슷한 방식인데, 언패킹을 활용하고 곱셈으로 부호를 판단하는 방식이 새로웠다.
https://school.programmers.co.kr/learn/courses/30/lessons/120842n만큼의 1차원 배열을 이어야하니 step을 n으로 설정했다.해당 값을 한 인덱스에 리스트로 넣어야 2차원 배열이 되니까 슬라이싱으로 넣었다.fo
https://school.programmers.co.kr/learn/courses/30/lessons/120843처음엔 k 번째로 던졌을 때 받는 사람이라고 착각해서 idx = 2 로 초기화, 하지만 문제가 던지는 사람을 물어봤으니 0 으로 초기화 후에 반복
https://school.programmers.co.kr/learn/courses/30/lessons/120844처음엔 반복문에서 스왑을 해볼까도 하고 고생 정말 많이 한 문제다.right 이면 현재 인덱스의 값을 다음 인덱스의 값에 저장하되, 리스트의 길이
https://school.programmers.co.kr/learn/courses/30/lessons/120845box에 들어있는 x, y, z 길이를 하나씩 꺼내서 주사위 길이 만큼 나누어 개수를 구했다.파이썬의 언패킹 기능을 잘 활용해서 x, y, z 길
https://school.programmers.co.kr/learn/courses/30/lessons/1208461부터 n까지 반복하면서 약수들을 담아둘 지역 변수 divisor을 먼저 초기화한다.1부터 자기자신까지 약수 대상인지 체크하고, 약수라면 divi
https://school.programmers.co.kr/learn/courses/30/lessons/120847곱셈중에 최대를 만드려면 두 개를 최대로 만들어버리면 된다.역순 정렬해서 0 번과 1 번 인덱스를 선택해서 곱해도 된다.다들 위에 내가 생각했던
https://school.programmers.co.kr/learn/courses/30/lessons/120848역시 step 이 아닌 어떤 조건으로 반복할 때는 while 문이 좋아보였다.math.factorial() 함수를 사용해서 값을 검사하고 n 보다
https://school.programmers.co.kr/learn/courses/30/lessons/120849모음들을 vowel 변수에 저장해두고, not in 조건문을 통해 검사하고 answer 에 추가했다.replace() 함수를 통하여 vowel 을
https://school.programmers.co.kr/learn/courses/30/lessons/120850해당 문자의 아스키코드 값을 통해서 숫자인지 판단했다. ('A' == 65, 'a' == 97)문제 풀면서 처음 알았던게 반환할 때 sort()
https://school.programmers.co.kr/learn/courses/30/lessons/120851isdigit() 함수로 숫자인지 파악하고, 숫자가 맞다면 정수로 바꾸어 반환했다.isdigit() 함수 없이 number 리스트와 비교를 통해
https://school.programmers.co.kr/learn/courses/30/lessons/120852소인수는 2부터 시작한다.소인수가 주어진 수가 될 때까지 반복하며 나누어 떨어지면 소인수이다.중복을 체크하여 answer 리스트에 담는다.더 나눌
https://school.programmers.co.kr/learn/courses/30/lessons/120853공백으로 구분되어 담긴 문자열을 다시 리스트 요소로 구분해서 담아주고, 그 길이만큼 순회한다."Z" 가 나오면 전 인덱스의 값을 빼고 더할 값이
https://school.programmers.co.kr/learn/courses/30/lessons/120854인덱스마다 문자열이 담겨있으니 하나씩 뽑아서 길이를 리스트에 담았다.나와 똑같은 코드이지만, 간단하게 한줄로도 표현 가능하다.다른 코드가 길어질때
https://school.programmers.co.kr/learn/courses/30/lessons/120888첫 번째 result 배열에 중복된 값을 제거해서 담았다.result 배열을 순회하며 문자열을 생성했다.나 왜 바로 더할 생각을 못했지..?심지어
https://school.programmers.co.kr/learn/courses/30/lessons/120889https://school.programmers.co.kr/learn/courses/30/lessons/120889모든 변의 합에서 긴
https://school.programmers.co.kr/learn/courses/30/lessons/120890최솟값을 찾기 위해 무한대로 초기화하고, 가장 가까운 수를 None 으로 초기화한다.배열을 순회하며 n과 현재 요소의 차이를 계산하여 작은 값을
https://school.programmers.co.kr/learn/courses/30/lessons/120891주어진 숫자에서 3, 6, 9 가 나오는 수만큼 박수를 쳐야하므로, 자리수마다 전부 찾아보기 위해서 문자열로 취급하여 in 연산자를 활용했다.co
https://school.programmers.co.kr/learn/courses/30/lessons/120892인덱스는 0부터 시작하니까, i + 1 이 배수인지 확인하고 더해주었다.가끔 슬라이싱 마지막 항목인 step 을 잘 쓰는 코드를 보면 새롭다.만약
https://school.programmers.co.kr/learn/courses/30/lessons/120893아스키 코드 값 기준으로 대소문자를 나누고, 내장함수를 이용하여 변환했다.내장 함수를 이용하여 대소문자를 판단하고 변환했다.islower(), i
https://school.programmers.co.kr/learn/courses/30/lessons/120894모스 부호 문제와 비슷한 문제였다.문자열에 공백으로 나뉘어 있다면 split() 을 통해 나누었겠지만, 그도 아니여서 딕셔너리에 키 값 형태로 저
https://school.programmers.co.kr/learn/courses/30/lessons/120895공백을 포함한 모든 문자열을 answer 리스트에 담고, 값을 바꿔주었다.반복문을 통해 리스트로 문자를 나눈게 아니라, 리스트 초기화 방식으로 문
https://school.programmers.co.kr/learn/courses/30/lessons/120896알파벳의 개수인 26 만큼의 리스트를 초기화하고, 소문자로만 이루어져있으니 a 가 0 번 인덱스로 저장되려면 a 의 아스키 코드값인 97을 빼준
https://school.programmers.co.kr/learn/courses/30/lessons/1208970 에서의 나눗셈은 정의되지 않으니까, 1부터 n까지 n이랑 다 나눠서 나누어 떨어지면 배열에 담는다.흐름은 똑같은데 is_integer() 함수
https://school.programmers.co.kr/learn/courses/30/lessons/120898가로로만 적는다고 했으니 글자 수만큼이 편지지의 가로 길이가 된다.2cm 크기로 적는다고 했으니 길이에서 2 를 곱해주었다.숫자 2 를 그냥 쓰기
https://school.programmers.co.kr/learn/courses/30/lessons/120899말 그대로 최댓값과 그 수의 인덱스를 배열에 담아 반환했다.내장 함수가 없었다면 반복문을 돌며 풀이했을듯 싶다.반복문을 사용한 풀이다.최댓값을 첫
https://school.programmers.co.kr/learn/courses/30/lessons/120902eval() 함수를 알지만, 공부하려고 다른 방식으로 풀어보았다.공백으로 나뉜 문자를 리스트에 구분해서 담고, 기호가 나오면 이후 값을 더하거나
https://school.programmers.co.kr/learn/courses/30/lessons/120903배열 순회하며 또 다른 배열에 해당 값이 있는지 체크한 후에 있다면 개수 더해주도록 풀이했다.와.. 문제 이해도가 정말 높은것 같다.중복된 원소를
https://school.programmers.co.kr/learn/courses/30/lessons/120904두 정수를 문자열로 변환하고, in 연산자를 통해 있는지 확인했다.그리고 index() 함수로 인덱스를 받고, 우리는 1 부터 세니까 1 을 더해
https://school.programmers.co.kr/learn/courses/30/lessons/120905배열을 순회하며 배수라면 answer 배열에 추가했다.역시나 간단한 for 문은 다들 한줄로 풀려고 하는 경향이 있다.위 문제의 경우 한줄이나 내
https://school.programmers.co.kr/learn/courses/30/lessons/120906정수 n 을 문자열로 변환하고, 맨 앞자리부터 정수로 다시 바꾸어 더했다.수학적으로는 이 풀이가 정답인것 같다.각 자리수별로 나누고 남은 값을 또
https://school.programmers.co.kr/learn/courses/30/lessons/120907주어진 문자열에서 = 기호를 기준으로 나누면 0 번 인덱스에는 수식이, 1 번 인덱스에는 체크할 답이 담긴다.이를 기반으로 eval() 을 통해
https://school.programmers.co.kr/learn/courses/30/lessons/120908in 연산자를 활용하여 str2 에 존재하면 1, 없으면 2 를 반환했다.대부분 in 연산자를 통해 풀었지만, 이렇게 find() 함수를 활용해
https://school.programmers.co.kr/learn/courses/30/lessons/120909제곱근이 정수로 떨어진다면 해당 수를 제곱하여 n 이 된다는 뜻이니까, 제곱근과 정수 변환된 값이 같다면 1 을 반환하고, 아니라면 제곱수가 아니
https://school.programmers.co.kr/learn/courses/30/lessons/120910두배만큼 계속 증식하니까 일단 t 시간 후는 2 \*\* t 로 표현 가능하고, 거기서 처음 마리수인 n 을 곱해주었다.위 풀이가 이해가 안된다면
https://school.programmers.co.kr/learn/courses/30/lessons/120911lower() 함수를 사용하여 모두 소문자로 만들고, sort() 로 알파벳 순으로 정렬하고 반환했다.문자열에는 정렬 함수 적용이 안되는줄 알았는
https://school.programmers.co.kr/learn/courses/30/lessons/120912배열을 문자열로 바꿔버린 후, '7' 의 개수를 반환했다.리스트 전부를 문자열로 바꾸기 보다, \[] 기호를 제외하고 문자만 추출했다.위 풀이에서
https://school.programmers.co.kr/learn/courses/30/lessons/120913n 만큼씩 배열을 순회하며 n 만큼 슬라이싱했다.while 문이 편하다면 이 풀이도 좋았다.앞에서 n 개 자르고, 자른 만큼 제외한 나머지를 반복
https://school.programmers.co.kr/learn/courses/30/lessons/120583배열을 순회하며 n 과 같은 값이 있다면 answer 에 1 더하는 풀이다.그저 완벽한 내장 함수...항상 문제를 보면 흐름을 생각하려고 하는데,
https://school.programmers.co.kr/learn/courses/30/lessons/120585배열을 순회하며 키 큰 친구가 있다면 개수를 늘려주었다.array 에 머쓱이의 키를 추가하고, 내림차순으로 정렬하면 제일 큰 친구부터 인덱스 0
https://school.programmers.co.kr/learn/courses/30/lessons/120860x 에 x 값들을 모두 담고, y에 y 값들을 모두 담았다.가로 길이는 x 좌표들의 차이, 세로 길이는 y 좌표들의 차이로 구했다.2 차원 리스트
https://school.programmers.co.kr/learn/courses/30/lessons/120861좌표의 범위를 계산하여 x, y 에 담았다.조건문에 범위를 넘지 않도록, 예를 들어 위로 가려면 위의 상한은 넘지 않는지, 아래로 가면 하한은 넘
https://school.programmers.co.kr/learn/courses/30/lessons/120862음수와 음수를 곱하면 양수가 되니까, 음수가 있다면 최소값끼리도 곱해보고, 음수가 하나만 있다면 negative_max가 양수끼리 곱인 posit
https://school.programmers.co.kr/learn/courses/30/lessons/120863terms 변수에 ' + ' 를 기준으로 항들을 나눈 값을 담아둔다.x 항의 계수와 상수항 합을 저장할 변수 초기화하고, 각 항을 하나씩 확인한다
https://school.programmers.co.kr/learn/courses/30/lessons/120864그냥 한 자리 수 자연수만 있다면 너무 쉬운 문제였겠지만, 그렇지 않으니 분리를 잘해주어야 한다.isalpha() 함수를 통해 대소문자 가리지 않
https://school.programmers.co.kr/learn/courses/30/lessons/1208668 방향 탐색을 위해 상, 하, 좌, 우, 좌상, 우상, 좌하, 우하 방향 순으로 dx, dy 배열을 만들었다. 위로 이동할 경우 \[-1, 0]
https://school.programmers.co.kr/learn/courses/30/lessons/120868두 가지 경우의 수를 나눌 수 있는데, 주어진 배열에 있는 길이가 가장 길 경우와 나머지 한 변이 가장 길 경우이다.첫 번째 for 문이 기존 변
https://school.programmers.co.kr/learn/courses/30/lessons/120869알파벳을 모두 사용한 단어가 하나라도 존재하면 되니까, if 문에서 set 연산 결과가 0 이 나오면 (차집합의 결과가 0 이면 전부 있다는 뜻)
https://school.programmers.co.kr/learn/courses/30/lessons/120871문제 설명의 예시를 보면 3 이나 3 의 배수라면 1 을 더해서 숫자를 처리하고 있다.따라서, 3x 마을의 숫자에 3 이 들어있거나 3 의 배수라
https://school.programmers.co.kr/learn/courses/30/lessons/120875pair 배열을 통해 가능한 선분 3 쌍의 조합을 만들고, is_parallel() 함수를 통해 기울기를 비교했다.하나라도 평행하면 1, 없으면
https://school.programmers.co.kr/learn/courses/30/lessons/120876선분의 양 끝점의 범위를 배열의 길이로 초기화했다.lines 를 순회하며 선분이 지나가는 인덱스에 1 을 더했다.마지막으로 해당 인덱스의 값이 1
https://school.programmers.co.kr/learn/courses/30/lessons/120878유한소수의 조건이 분모의 소인수가 2 와 5 만 존재해야하므로 분자는 납두고 분모만 따로 빼서 풀이했다.기약분수를 편리하게 만들기 위해 math.
https://school.programmers.co.kr/learn/courses/30/lessons/120880각 숫자와 n 과의 거리를 temp 리스트에 저장한다.temp 리스트를 거리 기준과 큰 수를 우선으로 정렬한다.정렬되었으면 원래 숫자로 복원해서
https://school.programmers.co.kr/learn/courses/30/lessons/120882avg 배열에 평균을 담고, s_avg 배열에 내림차순 정렬했다.제일 앞에 위치한 요소의 인덱스를 반환했다.rank 배열에 평균값 내림차순 정렬하