본문 바로가기

코딩 문제

(23)
[프로그래머스] 다트 게임 (python) ''' 문제 : 다트 게임 링크 : https://programmers.co.kr/learn/courses/30/lessons/17682 피드백 : - 10을 k로 치환하는 아이디어 - 정규식 사용 ''' ### 내풀이 def solution(dartResult): answer = [0] i = 0 for j in range(len(dartResult)): if dartResult[j].isdigit(): if dartResult[j] == '0' and dartResult[j-1] == '1': answer[i] = 10 else: answer.append(int(dartResult[j])) i += 1 elif dartResult[j] == 'D': answer[i] = answer[i] ** 2 e..
[프로그래머스] 비밀지도 (python) ''' 문제 : 비밀지도 링크 : https://programmers.co.kr/learn/courses/30/lessons/17681 피드백 - 비트 연산자 사용 ''' # 내풀이 def map_sum(arr11, arr22,n): answer = [] for a, b in zip(arr11, arr22): ans = '' for i in range(n): if a[i] == '1' or b[i] == '1': ans += '#' else: ans += ' ' answer.append(ans) return answer def solution(n, arr1, arr2): arr11 = [bin(x)[2:].zfill(n) for x in arr1] arr22 = [bin(x)[2:].zfill(n) fo..
[프로그래머스] 실패율 (python) 문제링크 https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 풀이 # 내풀이 def solution(N, stages): stages = np.array(stages) d = {} for i in range(1,N+1): stages = stages[np.where(stages >= i)] try_num = len(stages) success = sum(np.where(stages == i,1,0)) try: d..
[프로그래머스] 크레인 인형뽑기 게임 (python) 문제링크 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 내풀이 import numpy as np from collections import deque def solution(board, moves): b = np.array(board).T.tolist() for doll in b: for i in range(len(b[0])): try: doll.remove(0) except: continue answer, s = 0, [] for ..
[프로그래머스] 키패드 누르기 (python) 문제링크 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 내풀이 def get_distance(now, target): w = [[1,2,3],[4,5,6],[7,8,9],['*',0,'#']] l = [[1,4,7,'*'],[2,5,8,0],[3,6,9,'#']] for i in range(len(..
[프로그래머스] 숫자 문자열과 영단어 (python) 문제링크 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 내 풀이 import re def solution(s): l = ['zero','one','two','three','four','five','six','seven','eight','nine'] for i, k in enumerate(l): s = re.sub(k, str(i), s) return int(s) 피드백 없음
[프로그래머스] 신규 아이디 추천 (python) 문제링크 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 내풀이 import re def solution(new_id): s = new_id[:] # 1 s = s.lower() # 2 s = re.sub("[^a-z0-9-_.]","",s) # 3 s = re.sub("\.+",".",s) # 4 s = re.sub("^\.|\.$","",s) # 5 if s == "": s = "a" # 6-1 i..
[프로그래머스] 신고 결과 받기 (python) 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/92334?language=python3 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 내풀이 def solution(id_list, report, k): #key : id, #value : 그 id가 신고한 ID list(중복빼고 담음) rtr_dict = dict(zip(id_list, [[] for _ in range(len(id_list))])) #key : id, #value : 그 id가 ..
[백준_14502번] 연구소 (python) 문제 링크 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 첫번째 풀이 from collections import deque import copy from itertools import combinations n, m = map(int, input().split()) MAP = [] for _ in range(n): MAP.append(list(map(int, input().split()))) def bfs(start): global graph ''' st..
[백준_14501번] 퇴사 (Python) 문제 링크 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 내 풀이 def sol(): n = int(input()) t, p = [0],[0] for i in range(n): tt, pp = map(int, input().split()) t.append(tt) p.append(pp) dp = [0] * (n+2) for day in range(n,0,-1): if day + t[day] > n+1: dp[day] = dp[day + 1] else: dp[day] = max(p[day] + dp[day + t[day]], dp[day+1]) print(dp[1]) if __nam..