본문 바로가기

Programming/Programmers

(40)
[프로그래머스/Python] 수식 최대화 (반복/재귀) 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 1. 반복문 풀이 from itertools import permutations def calc(prior, exp): for i in prior: while i in exp: idx = exp.index(i) exp[idx-1] = str(eval(exp[idx-1]+exp[idx]+exp[idx+1])) exp = exp[:idx] + exp[idx+2:] return exp[0] def solution(expression): # 1)우선순위 만들기 ope..
[프로그래머스/Python] 프렌즈4블록 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr def solution(m, n, board): answer = 0 dx = [1,1,0] dy = [1,0,1] def cnt_one(m,n,visit): cnt = 0 for i in range(m): for j in range(n): if visit[i][j] ==1: cnt +=1 return cnt while True: ''' 1) 사각형이 확인되면 그때의 좌표에 visit 1표시하기 2) visit이 1인 갯수 카운트해서 answe..
[프로그래머스/Python] 파일명 정렬 (문자열처리(반복/정규식) 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 1. 반복을 이용한 문자열 처리 def solution(files): answer = [] idx=0 for f in files: f = f.lower() H = "" for i in range(len(f)): if f[i].isdigit(): f = f[i:] break else: H += f[i] N = "" for i in range(len(f)): if f[i].isdigit()==False: f = f[i:] break else: N += f..
[프로그래머스/Python] 후보키(조합/비트연산) 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 1. 조합 from itertools import combinations from collections import Counter def makeTuple(lists, tuples): # lists: 튜플로 변환할 리스트 # tuples: (몇개씩 묶어서 튜플로 만들 것인지) tmp = [] for i in tuples: tmp.append..
[프로그래머스/Python] 올바른 괄호(스택) 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호 programmers.co.kr def solution(s): answer = True stack = [] if len(s) % 2 != 0: return False for i in s: if stack and i == ')': stack.pop() if i == '(': stack.append(i) return len(stack)==0
[프로그래머스/Python] 숫자의 표현 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 끝까지 다 볼 필요는 없고 반만 보면 된다. def solution(n): nums = [i for i in range(0,n+1)] answer = 1 last = n//2 if n%2==0 else n//2+1 for i in range(1,last+1): left, right = i, i+1 while right = n: if tmp_sum == n: answer +=1 break else: right += 1 return answer
[프로그래머스/Python] 실패율 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr import operator def solution(N, stages): failure = {} for i in range(1, N+1): nominator=0 denominator=0 for j in stages: if j == i: nominator += 1 denominator += 1 if j > i: denominator += 1 if denominator == 0: failure[i] = 0 else: failure[i] = (nominator/den..
[프로그래머스/Python] 이상한 문자 만들기 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr def solution(s): answer = '' s = list(s) cnt = 0 for i in range(len(s)): if s[i] == ' ': answer += s[i] cnt = 0 else: if cnt%2 == 0: answer += s[i].upper() cnt += 1 else: answer += s[i].lower() cnt += 1 return answer 정석풀이 def solution(s): answer = [] fo..