Programmers/1단계 26

[python] 평행

문제 아이디어주어진 네 개의 점에서 두 직선을 만들고, 두 직선이 평행한지 여부를 확인하는 문제입니다. 평행한 직선의 특징은 기울기가 같다는 것입니다. 기울기는 두 점의 좌표를 이용하여 계산할 수 있으며, 이 기울기를 비교하여 두 직선이 평행한지 확인할 수 있습니다.아이디어는 다음과 같습니다:주어진 4개의 점에서 가능한 직선 쌍을 구합니다. 이는 두 점씩 선택하여 두 개의 직선을 만드는 것이므로, 3가지 경우의 수가 존재합니다.각 직선의 기울기를 계산하여 서로 비교합니다. 만약 기울기가 같은 직선 쌍이 있으면 평행한 직선이 존재하므로, 그때 1을 반환합니다.평행한 직선이 없다면 0을 반환합니다.시간 복잡도주어진 문제에서 4개의 점으로부터 가능한 직선 쌍을 구하는 경우의 수는 3가지입니다.각 경우에서 기울..

Programmers/1단계 2025.03.31

[2020 카카오 인턴십] 키패드 누르기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내풀이 def solution(numbers, hand): answer = '' diction = {1:[0,1],2:[0,2],3:[0,3],4:[1,1],5:[1,2],6:[1,3],7:[2,1],8:[2,2],9:[2,3],10:[3,1],0:[3,2],11:[3,3]} left = [1, 4, 7] right = [3, 6, 9] middle = [2, 5, 8, 0] L = 10 R = 11 # 경우의수 # 1 4 7 * 인 경우 -> "L" # 3 6 9 # 인 경우 -> "R" # 2 5 8..

Programmers/1단계 2022.10.19

[2021 카카오채용 인턴십] 숫자 문자열과 영단어

https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 def solution(s): answer = 0 number = ['zero','one','two','three','four', 'five','six','seven','eight','nine'] for i in number: if i in s: s = s.replace(i,str(number.index(i))) answer = int(s) return answer num_dic = {"..

Programmers/1단계 2022.10.13

[2021 Dev-Matching: 웹 백엔드 개발] 로또의 최고 순위와 최저 순위

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 def solution(lottos, win_nums): answer = [] cnt = lottos.count(0) if lottos == win_nums: best_rank = 1 worst_rank = 6 else: lottos2 = set(lottos) with_nums2 = set(win_nums) correct =len(lottos2 & with_nums2) best= correct + cnt worst = correct best_rank = len(lottos)- best +1 worst..

Programmers/1단계 2022.09.29

[PCCE 모의고사 1] 10번

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 def solution(text, anagram, sw): answer = [0]*len(anagram) text = list(text) if sw == True: for i in range(len(anagram)): answer[anagram[i]] = text[i] else: for i in range(len(anagram)): answer[i] = text[anagram[i]] answer2 = "".join(answer) return answer2 def solution(text, anagra..

Programmers/1단계 2022.09.20

[1단계] [심화] 크레인 인형 뽑기 게임

문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,..

Programmers/1단계 2022.09.19

[1단계] [ 탐욕법 ] 체육복

문제 문제접근 항상 하는 말이지만 for while 정말 중요하고 if에서 조건을 어떻게 달아주느냐가 핵심이다. 탐욕법을 활용한다. 문제해석 def solution(n, lost, reserve): reserve_set = set(reserve)-set(lost) lost_set = set(lost)-set(reserve) for reserve_person in reserve_set: if reserve_person-1 in lost_set: lost_set.remove(reserve_person-1) elif reserve_person+1 in lost_set: lost_set.remove(reserve_person+1) return n-len(lost_set) for 반복문을 통해서 lostlist를..

Programmers/1단계 2022.05.18