코딩 테스트124 [프로그래머스] 멀쩡한 사각형 programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr [풀이] (파란선 무시) 위 w=8, h=4인 사각형에서 빨간 선을 보면 가로선 8개 세로선 4개를 지나오는 모습을 볼 수 있다. 또 다르게 말하면, 꼭짓점에 선이 지나가는 것을 기준으로 가로선 2개, 세로선 1개의 묶음 4개를 볼 수 있다. 이때, 꼭짓점을 지나갔을 경우 가로선과 세로선이 만남으로, 그 선은 하나로 치자. -> 묶음 당 1개를 빼야.. 2021. 3. 24. [프로그래머스] 수식 최대화 programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr from itertools import permutations import re def solution(s): number_s = re.split("\W+",s) oper_s = re.split("\d+",s) index=1 for i in range(1,len(oper_s)-1): number_s.insert(index,oper_s[i]) index+=2 answer=0 .. 2021. 3. 23. [프로그래머스] 짝지어 제거하기 programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 풀이 1. 시간 초과 def solution(s): while True: first_len=len(s) for i in range(1,len(s)): if s[i-1]==s[i]: s=s[:i-1]+s[i+1:] break second_len=len(s) if second_len==first_len: return 0 elif second_len == 0: retu.. 2021. 3. 23. [프로그래머스] N개의 최소공배수 programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr from math import gcd def solution(arr): def lcm(a,b): return (a*b)//gcd(a,b) while True: arr.append(lcm(arr.pop(), arr.pop())) if len(arr)==1: return arr[0] 2021. 3. 23. [프로그래머스] JadenCase 문자열 만들기 programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr def solution(s): s=list(s.lower()) if s[0].isalpha(): s[0]=s[0].upper() for i in range(1,len(s)): if s[i-1]==' ' and s[i].isalpha(): s[i]=s[i].upper() return ''.join(s) 맨 앞, 맨 뒤 .. 2021. 3. 23. [프로그래머스] 행렬의 곱셈 programmers.co.kr/learn/courses/30/lessons/12949 def solution(arr1, arr2): arr3=[[0]*len(arr2[0]) for _ in range(len(arr1))] for i in range(len(arr1)): for j in range(len(arr2[0])): for k in range(len(arr1[0])): arr3[i][j] += (arr1[i][k]*arr2[k][j]) return arr3 프로그래머스에서는 numpy 사용 가능 2021. 3. 22. 이전 1 ··· 4 5 6 7 8 9 10 ··· 21 다음