본문 바로가기

728x90
반응형

알고리즘/프로그래머스

(13)
[ Python ] [1차] 비밀지도 (17681) 코딩테스트 해설2018 KAKAO BLIND RECRUITMENT : [1차] 비밀지도문제 유형 : 구현작성 코드def solution(n, arr1, arr2): answer = [] for i, j in zip(arr1, arr2): line = bin(i|j)[2:].replace("1", "#").replace("0"," ") if len(line) 접근 방식정수 배열 arr1, arr2의 각 요소를 or 연산 한 결과를 binary형태로 바꾸고, 문자열 0b를 제거하기 위해 [2:] 로 슬라이싱을 합니다.그리고 1을 # 으로 0으로 " " 으로 표현합니다.추가로 정해진 길이 n보다 생성된 line이 짧을 경우, 좌측에 공백을 n - len(line) 만큼 생성..
[ Python ] 숫자 문자열과 영단어(81301) 코딩테스트 해설2021 카카오톡 채용 연계형 인턴 : 숫자 문자열과 단어문제 유형 : 구현작성 코드def solution(s): word_dict = { '0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine' } for num, word in word_dict.items(): s = s.replace(word, num) return int(s)접근 방식문자형 정수와 문자열이 ..
[ Python ] - 베스트앨범(42579) 프로그래머스 베스트앨범(42579) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr프로그래머스의 해시(Hash) 영역에 있는 문제 입니다.문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.노래의 장르를 나타내는 문자열 배열 genr..
[ Python ] - 겹치는 선분(120876) 문제 설명 solutions.py def solution(lines): # 모든 시작점과 끝점을 이벤트로 변환 (시작은 +1, 끝은 -1) events = [] for st, ed in lines: events.append((st, 1)) # 선분 시작 events.append((ed, -1)) # 선분 끝 # 이벤트를 시간 순으로 정렬 events.sort() # 겹치는 선분 수를 계산하고 해당하는 길이를 합산 coverage = 0 # 현재 겹치는 선분 수 last_pos = events[0][0] # 최초 위치 초기화 total = 0 # 겹치는 선분 길이 합 for pos, change in events: if coverage >= 2: # 2개 이상 겹칠 때 길이 합산 total += pos -..
[ Python ] - 안전지대(120866) 문제 설명 제한사항 board는 n * n 배열입니다. 1 ≤ n ≤ 100 지뢰는 1로 표시되어 있습니다. board에는 지뢰가 있는 지역 1과 지뢰가 없는 지역 0만 존재합니다. 입출력 예 입출력 예 설명 입출력 예 #1 (3, 2)에 지뢰가 있으므로 지뢰가 있는 지역과 지뢰와 인접한 위, 아래, 좌, 우, 대각선 총 8칸은 위험지역입니다. 따라서 16을 return합니다. 입출력 예 #2 (3, 2), (3, 3)에 지뢰가 있으므로 지뢰가 있는 지역과 지뢰와 인접한 위, 아래, 좌, 우, 대각선은 위험지역입니다. 따라서 위험지역을 제외한 칸 수 13을 return합니다. 입출력 예 #3 모든 지역에 지뢰가 있으므로 안전지역은 없습니다. 따라서 0을 return합니다. solution.py def s..
[ Python ] - 로그인 성공?(120883) 문제 설명 머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요. 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다. 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다. 제한사항 회원들의 아이디는 문자열입니다. 회원들의 아이디는 알파벳 소문자와 숫자로만 이루어져 있습니다. 회원들의 패스워드는 숫자로 구성된 문자열입니다. 회원들의 비밀번호는 같을 수 있지만..
[ Python ] - 특이한 정렬(120880) 문제 설명 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10,000 1 ≤ numlist의 원소 ≤ 10,000 1 ≤ numlist의 길이 ≤ 100 numlist는 중복된 원소를 갖지 않습니다. 입출력 예 입출력 예 설명 입출력 예 #1 4에서 가까운 순으로 [4, 5, 3, 6, 2, 1]을 return합니다. 3과 5는 거리가 같으므로 더 큰 5가 앞에 와야 합니다. 2와 6은 거리가 같으므로 더 큰 6이 앞에 와야 합..
[ Python ] - 저주의 숫자 3(120871) 문제 설명 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 100,000 입출력 예 입출력 예 설명 입출력 예 #1 [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다. 입출력 예 #2 [10, 29]에는 7이 없으므로 0을 return 합니다. solution.py def solution(n): answer = 0 # 최종적으로 반환할 답 temp_num = 0 # 각 숫자에 더해질 임시 숫자 # 1부터 n까지의 숫자에 대해 반복 for num in range(1, n + 1): # (num..

728x90
반응형