2/프로그래머스 50

프로그래머스 연습 문제 - 가장 긴 팰린드롬

programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr level3 1. def solution(s): answer = 0 if len(s) == 1: return 1 for i in range(len(s)-1): for j in range(i+1,len(s)+1): word = s[i:j] if answer > len(word): continue if word[::-1] in..

프로그래머스 연습 문제 - JadenCase 문자열 만들기

programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr level2 def solution(s): answer = '' result = list(s.lower()) for i in range(len(s)-1): if result[i] == ' ' and (result[i+1].isalpha() or result[i+1].isdigit()): if result[i+1].is..

프로그래머스 연습 문제 - 가장 큰 정사각형 찾기

programmers.co.kr/learn/courses/30/lessons/12905 코딩테스트 연습 - 가장 큰 정사각형 찾기 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr level2 DP def solution(board): answer = 0 for i in range(len(board)): for j in range(len(board[0])): if(i > 0) and j > 0 and board[i][j] != 0: board[i][j] = min(board[i][j-1],board[i-1][j],board[i-1][j-1]) +1 answer = max(answer, board[i][j]) return answer ** 2 검..

프로그래머스 연습 문제 - 베스트앨범

programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr level3 해시 1. def solution(genres, plays): answer = [] result = {} for x, y in zip(genres,plays): result[x] = result.get(x,[]) result[x].append(y) result = sorted(result.items(),key= lambda x: sum(x[1]),reverse=..

프로그래머스 연습 문제 - 짝지어 제거하기

programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr level2 1. def solution(s): answer = 0 for _ in range(len(s)): if len(s) > 0: for i in range(len(s)-1): count = 0 for j in range(i+1,len(s)): if s[i] == s[j]: count += 1 if(len(s) == 2): s = '0' return 1 e..

프로그래머스 연습 문제 - 같은 숫자는 싫어

programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr level1 1번째 def solution(arr): for i in range(len(arr)-1): for _ in range(i+1,len(arr)): if arr[i] == arr[i+1]: del arr[i+1] else: break return arr 주어진 arr에서 반복되는 수 del로 제거 답은 다 맞는데 효율성에서 다 떨어진다.....

프로그래머스 연습 문제 - 예상 대진표

programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr level2 1번째 def solution(n,a,b): result = [] answer = 0 for i in range(1,n+1): result.append(i) while n > 3 : answer += 1 n = n//2 for i in range(n): x = result.pop(i) y = result.pop(i) if (x == a o..

프로그래머스 연습 문제 - 방금그곡

programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, �� programmers.co.kr level2 def solution(m, musicinfos): answer = '' li=[] play=[] for i in range(len(musicinfos)): li.append(musicinfos[i].split(",")) if li[i][0][:2] == li[i][1][:2]: n = int(li[i][1][3:5])-int(li[i][0][3..

프로그래머스 연습 문제 - 파일명 정렬

programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램�� programmers.co.kr level2 1차 def solution(files): answer = [] HEAD , TAIL= head(files) NUMBERS = numbers(TAIL) for i in range(1,len(files)-1): for j in range(1,len(files)-i): if HEAD[j-1].lower() > HEAD[j].lower(): HEAD[j-..

프로그래머스 연습 문제 - 소수 만들기

programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 � programmers.co.kr level2 def solution(nums): answer = 0 result = [] for i in range(len(nums)): for j in range(i+1,len(nums)): for x in range(j+1,len(nums)): num = [nums[i],nums[j],nums[x]] if num not in result: resul..