문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 작성한 코드슬라이싱을 이용하여 리스트를 한 번만 확인한다.개인적으로 생각했을때 문제의 출제의도는 '20만 번의 배열 크기', 자연수의 범위라는 조건과 탐색이라는 조건을 생각했을 때 바이너리 서치를 이용하여 시간복잡도를 O(nlogn)까지 줄이라는 의미이다. 하지만 DP? 를 이용해 조금 더 줄여보자.k범위의 디딤돌이 모두 소모가 되었을 때 징검다리를 건널 수 없다.이 의미는 k범위 ..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/181921 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 작성한 코드바이너리 변환을 이용하였다.0과 5로 이루어진 수만 존재하기 때문에 5를 1로 치환하면 이진수와 같게 된다.최댓값인 r의 자릿수를 이용해, 이진수의 범위를 r의 자릿수만큼의 2의 지수 범위로 정할 수 있다.ex) 555 -> 111 -> 7, (3자리 수 이므로 '(2 ** 3) - 1 = 7'이 된다. 다음으로 range 함수에서는 미만의 수까지만 세므로, -1을 할..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/181904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비슷한 문제 qr code https://school.programmers.co.kr/learn/courses/30/lessons/181903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 문자열의 슬라이싱을 먼저 ..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/181945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 간단하지만 어떻게 문자열을 나누어 한 줄에 한 글자씩 출력할 수 있게 하는지 여러 방법이 있어 포스팅하였다. 처음 작성한 코드 루프문을 이용한 기본적인 풀이이다. for i in input(): print(i) 다른 코드 [코드1] join 함수를 이용하여 글자사이를 '\n'로 추가한다. print('\n'.join(input())) [코드2] replace 함수를 이용하..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 직사각형을 가로로 길게 눕힌 뒤, x값에 따라 y값을 측정하여 빈칸이 된 상자의 개수를 체크한다. 우선 시행 횟수를 줄이기 위해, GCD(최대공배수)를 구한다. GCD는 크기 w x h의 사각형을 gcd 만큼의 크기 (w//gcd) x (h//gcd)의 사각형으로 나눌 수 있다. ex) 12 x 8 사각형 -> 4개의 3 x 2 사각형 x값에 따른 y값을 구한다. x..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 h 번 이상 인용된 논문이 h 편 이상인 조건을 잘 이용을 해보자. 반대로 말하면 인용된 논문이 많은 논문부터 h 편을 나열하면 h 번째 논문은 h 번 이상 인용돼야 한다. 입력된 배열 citiations을 오름차순으로 정렬한다. 루프문에서 pop 함수를 이용해 역순으로 값을 가져올 것이다. 루프문에서 h를 1부터 행렬의 최대 길이까지 반복한다. h를 0부터 하지 않..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 문제를 한 사분면으로 범위를 줄이고 각 x 좌표에 따른 y값을 이용해 점들의 개수를 합치는 풀이이다. 그림에서 두 개의 원은 중심은 (0, 0)으로 동일하므로 각 사분면에 대한 점들의 위치와 개수는 동일하다 할 수 있다. 따라서 빨간색 사각형으로 칠한 사분면 하나에 대한 점들의 개수만 구하기로 한다. 각 x값에서의 y값을 원 r1은 y1, 원 r2는 y2로 지정했다..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 경우의 수를 계산한 풀이 n개의 종류의 요소 {a1, a2, ..., an} 가 합쳐서 m개가 있을 때 나올 수 있는 경우의 수는 m! / (a1! * a2! * ... * an!)가 된다. 이 문제에서는 1번 뛰기와 2번 뛰기만 존재하므로 요소는 {a1, a2} 두 개만 고려하면 된다. 2번 뛰기 요소가 하나 늘어날 수록 1번 뛰기 요소의 개수가 하나씩 줄어들게 된..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 첫 문자에 대한 변수 설정을 해준다. 첫 번째 사람은 탈락하지 않기 때문에 괜찮다. words_lst 리스트는 지금까지 불린 단어를 저장하게 된다. last_spell 변수는 직전 단어의 마지막 스펠을 저장하게 된다. enumerate를 이용하여 words 리스트에서 두 번째 문자부터 가져와 조건을 체크한다. 가져온 글자의 첫 스펠과 앞 글자의 마지막 스펠이 일치하고..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 각 학생들이 소지한 체육복의 개수를 정리하고, 탐욕법을 이용해 앞 뒤 학생에게 빌릴 수 있는 경우를 찾아 적용한다. 각 학생들이 소지한 체육복 개수를 리스트에 정리한다. cloth_lst 리스트를 생성하여 n개의 요소에 1을 선언한다. lost 리스트에 있는 학생들은 요소에 -1을 더하여 체육복의 개수를 0으로 만들어준다. reserve 리스트에 있는 학생들은 요소에..