본문 바로가기

알고리즘/프로그래머스(Python)

(39)
[알고리즘] 프로그래머스 비밀지도 / python, 비트연산자 https://programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구구절절한.. 내코드 trans함수에서 2진수 변환 한뒤에, 1이 들어있는지 하나하나 비교했다. def trans(n, num): if num == 1: return '0'*(n-1) + '1' if num == 0: return '0'*n ret = '' while True: if num % 2 == 0: ret += '0' else: ret += '1' num //= 2 if num == 1: ret +=..
[알고리즘] 프로그래머스 프렌즈4블록 / python https://programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔ 풀이 한 turn에서 없앨 수 있는 블록을 한번에 모아모아서 없애기 -> 밑으로 내리기 겹쳐져 있는 블록을 위해서 0으로 만드는 작업을 lst배열에 모아 한번에 한다. 블록을 모으는 lst배열이 비어있다면 작업들을 끝내고 0의 갯수(=없어진 블록의 갯수)를 센다. check 함수 👉 board의 모든 좌표에서 ➡ ↘ ⬇ 좌표를 확인하고 set에 넣어서 4개 모두 같은 값인지 확인 del_down 함수 👉 ..
[알고리즘] 프로그래머스 뉴스 클러스터링 / python https://programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔ 풀이 lower함수로 전체 소문자 만들어주기 isalpha함수로 알파벳이 아닌 문자 제거 def solution(str1, str2): m1, m2 = [], [] str1 = str1.lower() str2 = str2.lower() for i in range(len(str1)-2): if str1[i:i+2].isalpha(): m1.append(str1[i:i+2]) if str1[len(str1)-..
[알고리즘] 프로그래머스 징검다리 건너기 / python https://programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔ 풀이 디딤돌의 크기가 3억으로 매우 크고, 건널 니니즈 친구들의 수도 무제한 이므로 탐색시간이 짧은 이진 탐색을 사용한다. 이진 탐색을 할 대상은 니니즈 친구들의 수 이다. MIN ~ MAX의 범위를 줄여가면서 탐색한다. check함수에서 디딤돌 - 건넌 니니즈수 가 0보다 작을 때 ck값을 1증가시키고, 0보다 크다면 연속이 아니므로 ck에 다시 0을 넣는다. 크기가 0인 디딤돌이 연속으로 k개 나타날 ..
[알고리즘] 프로그래머스 튜플 / python https://programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌풀이 과정 맨앞 '{{'와 맨뒤 '}}'를 잘라준다. 그리고 '},{'을 기준으로 split하면 괄호문자가 모두 사라진다. s는 현재 ','를 포함한 문자열 원소들이다. 👉[ '1', '1,2', '1,2,3' ] 반복문에 들어오는 원소마다 ','을 기준으로 split해준다. 👉[ '1, 2' ]가 들어온다면 [ '1', '2' ]로 만든다. answer 배열에 차례대로 append해준다. def solut..
[알고리즘] 프로그래머스 크레인 인형뽑기 게임 / python https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(board, moves): answer = 0 ret = [] for move in moves: for i in range(len(board)): if board[i][move-1]: if ret and ret[-1] == board[i][move-1]: ret.pop() board[i][move-1] = 0 answer += 2 break else: ret.append(board[i]..
[알고리즘] 프로그래머스 파일명 정렬 / python https://programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import re def solution(files): file_lst = [re.split('([0-9]+)',i) for i in files] file_lst.sort( key = lambda x : ( x[0].lower(), int(x[1]) ) ) return [''.join(lst) for lst in file_lst] re.split('([0-9]+)', i) #숫자를 기준으로 나눈다 fil_ls..
[알고리즘] 프로그래머스 n진수게임 / python https://programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def trans(n, num): arr = "0123456789ABCDEF" ret = '' if num == 0: return '0' while num > 0: ret = arr[num % n] + ret num = num // n return ret def solution(n, t, m, p): answer = '' string = '' for i in range(t*m): string += trans(..