Programmers 29

[python] 평행

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

Programmers/1단계 2025.03.31

PCCE 모의고사 2회 10번문제

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 def solution(n, board, position): result = [] for b in board: b.insert(0,0) b.append(0) board.insert(0,[0]*len(board[0])) board.append([0]*len(board[0])) for p in position: a, b = p[0]+1, p[1]+1 t = 0 for i in range(-1,2): for j in range(-1,2): t += board[a+i][b+j] if board[a][b]: ..

Programmers 2023.04.03

콜라문제

https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제해석 산수 문제 조금더 생각 해보면 되지 않았나 조금 아쉬운 문제 끝까지 해볼 것 문제풀이 def solution(a, b, n): answer = 0 # 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. # 빈 병의 개수가 콜라를 받기 위해서 필요한 개수보다 크면 반복한다 while (n >= a): remain_bottle = n % a n = (n//a) * b # 마트에..

Programmers/2단계 2023.03.29

[문자열] 이진 변환 반복하기

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 반복을 하는데 while문을 사용하는 게 핵심이었다. 반복을 할 때마다 문자열을 재초기화를 해준다. 돌리면서 0이 개수를 카운트 해준다. 문자열의 길이를 가지고 이진수 변환 (0b1101) 슬라이싱 필요 0b 제거 문제 코드 def solution(x): answer = [] cnt = 0 zero = 0 while True: if x == '1': break zero = zero + ..

Programmers/2단계 2023.01.06

[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