문제 https://school.programmers.co.kr/learn/courses/30/lessons/120864 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 숫자의 경우 연속된 숫자(32의 경우 3, 2를 각각 더하는 것이 아니라 묶어서 32)를 더해야한다. - start와 end를 사용하여 answer에 더할 범위 지정 def solution(my_string): answer, start, end = 0, 0, 1 for i in range(len(my_string) - 1): if my_string[i].isdigit() and m..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 폭탄이 연쇄적으로 터지는 것을 막기 위해 visit 배열에만 check 한다. def solution(board): n = len(board) visit = [[0] * n for _ in range(n)] for x in range(n): for y in range(n): if board[x][y] == 1: visit[x][y] = 1 for i in range(8): dx =..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120869 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 def solution(spell, dic): for i in range(len(dic)): if len(dic[i]) == len(spell): # 한번씩만 사용하므로 길이 확인 cnt = 0 for j in range(len(spell)): # 각 단어를 사용했는지 여부 확인 if spell[j] in dic[i]: cnt += 1 if cnt == len(spell): # 각 단..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 3의 배수 또는 '3'이 포함될 경우 answer + 1을 해준다. - while문 안에서 각 10진법 단계마다 위 2개의 조건이 만족할때까지 answer을 조정해준다. ※ 참고 : 30, 31, 32 .... 39 까지 모두 건너뛴다. def solution(n): answer = 0 for i in range(n): answer += 1 while 1: # while문 안에서 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 총 3가지 방법으로 선분을 이을 수 있다. (1 - 2, 3 - 4 / 1 - 3, 2 - 4 / 1 - 4, 2 - 3) - 평행 : 두 선분의 기울기가 같아야 한다. - 평행한 선분의 개수를 구하는 것이 아니라 평행인 선분이 1개 이상이면 1을 return 한다. def incline(a, b): return (a[1] - b[1]) / (a[0] - b[0])# 괄호 필수 주..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 선분을 bucket에 담아 겹치는 선분, 즉 bucket 2이상의 개수를 구한다. def solution(lines): answer = 0 lines.sort() bucket = [0] * 201 # -100 ~ 100 => 100 ~ 201 # 선분 bucket에 담아 count for i in range(3): if lines[i][1] > lines[i][0]: for j i..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120848 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - n 이하이기 때문에 -1, while문 안에서 자동으로 +1이 되기 때문에 -1 이 추가로 필요 → 마지막에 -2를 해준다. def solution(n): i, total = 1, 1 while total
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 정렬 후 (음수 * 음수) 또는 (양수 * 양수)로 계산하는 경우가 가장 크다 def solution(numbers): numbers.sort() answer = max(numbers[-1] * numbers[-2], numbers[0] * numbers[1]) return answer