Coding Test/Programmers_Python
-
문제 코드 설계 유의사항 1. 첫 글자를 담고, 이를 세는 변수 추가, 다음 글자가 같다면 새로 담지 않고 세는 변수를 1 증가 2. 첫 글자와 다른 글자가 나온 횟수 변수 추가, 첫 글자 count 변수과 값이 같아지면 첫 번째 문자 값을 옮긴 후 분리하기 3. 분리 할 때마다 이를 세는 변수를 증가시키고, 분해하지 못하면 종료하기 코드 # 풀이 추가 def solution(s): # count 할 배열 미리 생성, 처음에는 첫 번째 글자 저장 # 두 번째와 세 번째에는 각각 s[0]과 동일하고, 다른 문자를 세는 자리이다 answer = 0 count = [s[0], 0, 0] # count에 저장된 변수들의 조건에 맞게 작성하고 문제에 나온 조건에 따라 마지막에 한 번 더 분리한다 for i in ..
[프로그래머스] 문자열 나누기문제 코드 설계 유의사항 1. 첫 글자를 담고, 이를 세는 변수 추가, 다음 글자가 같다면 새로 담지 않고 세는 변수를 1 증가 2. 첫 글자와 다른 글자가 나온 횟수 변수 추가, 첫 글자 count 변수과 값이 같아지면 첫 번째 문자 값을 옮긴 후 분리하기 3. 분리 할 때마다 이를 세는 변수를 증가시키고, 분해하지 못하면 종료하기 코드 # 풀이 추가 def solution(s): # count 할 배열 미리 생성, 처음에는 첫 번째 글자 저장 # 두 번째와 세 번째에는 각각 s[0]과 동일하고, 다른 문자를 세는 자리이다 answer = 0 count = [s[0], 0, 0] # count에 저장된 변수들의 조건에 맞게 작성하고 문제에 나온 조건에 따라 마지막에 한 번 더 분리한다 for i in ..
2023.02.12 -
문제 카카오 아이디 규칙에 맞게 추천 1. 아이디의 길이는 3자 이상 15자 이하 2. 아이디는 알파벳 소문자, 숫자, 빼기( - ), 언더바( _ ), 마침표( . )만 사용가능 3. 마침표( . )는 처음과 끝에 사용하지 못하며 연속으로 사용 불가능하다 신규 유저가 입력한 new_id가 규칙에 맞지 않다면 아래와 같이 추천 1. new_id의 모든 대문자를 소문자로 치환 2. new_id에서 알파벳 소문자, 숫자, 빼기( - ), 밑줄( _ ), 마침표( . )를 제외한 모든 문자 제거 3. new_id에서 마침표( . )가 두 번 이상 연속 된 부분을 하나의 마침표( . )로 치환 4. new_id에서 마침표( . )가 처음이나 끝에 위치한다면 제거 5. new_id가 빈 문자열이라면 new_id에..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천문제 카카오 아이디 규칙에 맞게 추천 1. 아이디의 길이는 3자 이상 15자 이하 2. 아이디는 알파벳 소문자, 숫자, 빼기( - ), 언더바( _ ), 마침표( . )만 사용가능 3. 마침표( . )는 처음과 끝에 사용하지 못하며 연속으로 사용 불가능하다 신규 유저가 입력한 new_id가 규칙에 맞지 않다면 아래와 같이 추천 1. new_id의 모든 대문자를 소문자로 치환 2. new_id에서 알파벳 소문자, 숫자, 빼기( - ), 밑줄( _ ), 마침표( . )를 제외한 모든 문자 제거 3. new_id에서 마침표( . )가 두 번 이상 연속 된 부분을 하나의 마침표( . )로 치환 4. new_id에서 마침표( . )가 처음이나 끝에 위치한다면 제거 5. new_id가 빈 문자열이라면 new_id에..
2023.02.12 -
문제를 제대로 파악한 후 시나리오를 미리 따로 적어두고 코드를 작성하면 크게 어렵지 않게 풀 수 있는 문제인 것 같다 문제 화면의 구성, 규칙을 다음과 같이 설정 할 예정이다 1. 게임 화면은 N x N 크기의 격자이다 2. 위쪽에는 크레인이 있고, 오른쪽에는 바구니가 있다 3. 각 격자마다 다른 속성의 인형이 있고, 인형이 없는 칸은 공백이다 4. 각 인형들은 아래에서부터 차곡차곡 쌓여있다 5. 크레인을 멈춘 위치에서 인형을 들어올릴 수 있다 6. 집어올린 인형이 바구니에 들어가면 아래에서 부터 쌓인다 7. 바구니에 같은 속성의 두 개의 인형이 두 개 붙으면 사라진다 8. 바구니는 모든 인형이 들어갈 정도로 크다 무엇을 확인해야할까? 1. board 배열은 N x N 형태로 ( 5
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임문제를 제대로 파악한 후 시나리오를 미리 따로 적어두고 코드를 작성하면 크게 어렵지 않게 풀 수 있는 문제인 것 같다 문제 화면의 구성, 규칙을 다음과 같이 설정 할 예정이다 1. 게임 화면은 N x N 크기의 격자이다 2. 위쪽에는 크레인이 있고, 오른쪽에는 바구니가 있다 3. 각 격자마다 다른 속성의 인형이 있고, 인형이 없는 칸은 공백이다 4. 각 인형들은 아래에서부터 차곡차곡 쌓여있다 5. 크레인을 멈춘 위치에서 인형을 들어올릴 수 있다 6. 집어올린 인형이 바구니에 들어가면 아래에서 부터 쌓인다 7. 바구니에 같은 속성의 두 개의 인형이 두 개 붙으면 사라진다 8. 바구니는 모든 인형이 들어갈 정도로 크다 무엇을 확인해야할까? 1. board 배열은 N x N 형태로 ( 5
2023.02.12 -
키패드를 누르는 카카오 인턴십 문제이다. 방법을 알면 쉽게 해결이 가능하지만 제한사항을 놓칠 경우 해결하기 힘들다는 특징이 있다 문제 1. 키패드에서 왼손과 오른손 엄지손가락만을 이용해서 숫자만 입력하려고 한다 2. 왼엄지와 오른엄지는 각각 '*', '#'에 초기 위치를 잡는다 3. [1, 4, 7]은 왼손 엄지로만 누르고, [3, 6, 9]는 오른 엄지로만 누른다 4. [2, 5, 8, 0]은 둘 다 누를 수 있고, 보통은 더 가까운 쪽의 엄지를 이용해서 누른다 5. 숫자와 두 손가락 간의 거리가 같을 경우에는 hand에 적힌 주 사용 손으로 누른다 (왼손잡이, 오른손잡이) 6. 누른 손을 L 또는 R을 이용해서 나타내고 연속적인 문자열로 return하는 문제이다 무엇을 확인해야할까? 1. 키패드 각각..
[프로그래머스] 2020 카카오 인턴십 - 키패드 누르기키패드를 누르는 카카오 인턴십 문제이다. 방법을 알면 쉽게 해결이 가능하지만 제한사항을 놓칠 경우 해결하기 힘들다는 특징이 있다 문제 1. 키패드에서 왼손과 오른손 엄지손가락만을 이용해서 숫자만 입력하려고 한다 2. 왼엄지와 오른엄지는 각각 '*', '#'에 초기 위치를 잡는다 3. [1, 4, 7]은 왼손 엄지로만 누르고, [3, 6, 9]는 오른 엄지로만 누른다 4. [2, 5, 8, 0]은 둘 다 누를 수 있고, 보통은 더 가까운 쪽의 엄지를 이용해서 누른다 5. 숫자와 두 손가락 간의 거리가 같을 경우에는 hand에 적힌 주 사용 손으로 누른다 (왼손잡이, 오른손잡이) 6. 누른 손을 L 또는 R을 이용해서 나타내고 연속적인 문자열로 return하는 문제이다 무엇을 확인해야할까? 1. 키패드 각각..
2023.02.12 -
2022-11-30일 직접 푼 오늘의 연습 문제에 관한 내용입니다 자연수 뒤집어 배열로 만들기(Lv.1) 더보기 코드 def solution(n): n = list(str(n)) answer = [] for i in range(len(n)-1,0,-1): answer.append(int(n[i])) answer.append(int(n[0])) return answer 실행결과 숫자 비교하기(Lv.0) 더보기 코드 def solution(num1, num2): answer = 0 if num1 == num2: answer = 1 else: answer = -1 return answer 실행결과
[Python] 오늘의 연습 문제 풀기 5편2022-11-30일 직접 푼 오늘의 연습 문제에 관한 내용입니다 자연수 뒤집어 배열로 만들기(Lv.1) 더보기 코드 def solution(n): n = list(str(n)) answer = [] for i in range(len(n)-1,0,-1): answer.append(int(n[i])) answer.append(int(n[0])) return answer 실행결과 숫자 비교하기(Lv.0) 더보기 코드 def solution(num1, num2): answer = 0 if num1 == num2: answer = 1 else: answer = -1 return answer 실행결과
2022.12.01 -
코딩테스트 입문 | 프로그래머스 스쿨 코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요! school.programmers.co.kr 프로그래머스에서 제공하는 코딩테스트 입문과정으로 연습에 적합한 문제들이 모여있습니다 두 수의 합 더보기 코드 def solution(num1, num2): answer = num1 + num2 return answer 실행결과 두 수의 차 더보기 코드 def solution(num1, num2): answer = num1 - num2 return answer 실행결과 두 수의 곱 더보기 코드 def solution(num1, num2): answer = num1 * num..
[Python] 프로그래머스 코딩테스트 입문 Day1코딩테스트 입문 | 프로그래머스 스쿨 코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요! school.programmers.co.kr 프로그래머스에서 제공하는 코딩테스트 입문과정으로 연습에 적합한 문제들이 모여있습니다 두 수의 합 더보기 코드 def solution(num1, num2): answer = num1 + num2 return answer 실행결과 두 수의 차 더보기 코드 def solution(num1, num2): answer = num1 - num2 return answer 실행결과 두 수의 곱 더보기 코드 def solution(num1, num2): answer = num1 * num..
2022.12.01 -
2022-11-29일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 같은 숫자는 싫어(정답률 74%) 더보기 코드 def solution(arr): answer = [] answer.append(arr[0]) for i in range(1,len(arr)): if arr[i] == arr[i-1]: continue answer.append(arr[i]) return answer 실행결과
[Python] 오늘의 연습 문제 풀기 4편2022-11-29일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 같은 숫자는 싫어(정답률 74%) 더보기 코드 def solution(arr): answer = [] answer.append(arr[0]) for i in range(1,len(arr)): if arr[i] == arr[i-1]: continue answer.append(arr[i]) return answer 실행결과
2022.11.30 -
2022-11-28일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 [1차] 비밀지도(Lv.1)(정답률 68%) 더보기 추가로 알아야 할 함수/메소드 zip() rjust - 우측 정렬 코드 작동 방식 1. arr1과 arr2의 10진수들을 2진수로 변환한다 1+. 이 때, bin함수를 쓸 경우 b0가 붙으므로 그만큼 슬라이싱 해준다 2. arr12라는 변수에 우측정렬 후 빈 공간을 0으로 채운다 3. arr12변수에 들어가있는 1을 #으로, 0을 공백으로 대체한다 4. answer에 최종 지도 기호 한 줄을 넣는다 5. 완성된 전체 지도를 반환한다 코드 def solution(n, arr1, arr2): answer = [] ..
[Python] 오늘의 연습 문제 풀기 3편2022-11-28일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 [1차] 비밀지도(Lv.1)(정답률 68%) 더보기 추가로 알아야 할 함수/메소드 zip() rjust - 우측 정렬 코드 작동 방식 1. arr1과 arr2의 10진수들을 2진수로 변환한다 1+. 이 때, bin함수를 쓸 경우 b0가 붙으므로 그만큼 슬라이싱 해준다 2. arr12라는 변수에 우측정렬 후 빈 공간을 0으로 채운다 3. arr12변수에 들어가있는 1을 #으로, 0을 공백으로 대체한다 4. answer에 최종 지도 기호 한 줄을 넣는다 5. 완성된 전체 지도를 반환한다 코드 def solution(n, arr1, arr2): answer = [] ..
2022.11.29 -
2022-11-27일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 약수의 개수와 덧셈(Lv.1)(정답률 79%) 더보기 코드 def solution(left, right): answer = 0 for i in range(left, right+1): count = 0 for j in range(1, i+1): if i%j == 0: count += 1 if count%2 == 0: answer = answer + i else: answer = answer - i return answer 실행결과
[Python] 오늘의 연습 문제 풀기 2편2022-11-27일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 약수의 개수와 덧셈(Lv.1)(정답률 79%) 더보기 코드 def solution(left, right): answer = 0 for i in range(left, right+1): count = 0 for j in range(1, i+1): if i%j == 0: count += 1 if count%2 == 0: answer = answer + i else: answer = answer - i return answer 실행결과
2022.11.28 -
2022-11-25일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 다음에 올 숫자(Lv.0)(정답률57%) 더보기 설계 0. 등차와 등비수열은 최소 3개의 원소가 들어가야 한다는 특성을 이용한다 0. 배열은 0번째 자리부터 시작하기에 실제 길이보다 1작은 위치에서 끝나는 특성을 이용한다 1. 등차인 경우 배열의 마지막 부분에 등차를 더해서 반환 2. 등차가 아닌 경우 배열의 마지막 부분에 등비를 곱해서 반환 코드 def solution(common): n = common[1] - common[0] if common[1] + n == common[2]: answer = common[len(common)-1] + n else: n..
[Python] 오늘의 연습 문제 풀기 1편2022-11-25일 직접 푼 오늘의 연습 문제에 관한 내용입니다 정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다 다음에 올 숫자(Lv.0)(정답률57%) 더보기 설계 0. 등차와 등비수열은 최소 3개의 원소가 들어가야 한다는 특성을 이용한다 0. 배열은 0번째 자리부터 시작하기에 실제 길이보다 1작은 위치에서 끝나는 특성을 이용한다 1. 등차인 경우 배열의 마지막 부분에 등차를 더해서 반환 2. 등차가 아닌 경우 배열의 마지막 부분에 등비를 곱해서 반환 코드 def solution(common): n = common[1] - common[0] if common[1] + n == common[2]: answer = common[len(common)-1] + n else: n..
2022.11.26