Loading...

[Python] 프로그래머스 - 삼각 달팽이

programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 문제에서는 배열이 삼각형모양으로 주어져 있지만, 왼쪽정렬을 시켜주는게 문제푸는데 도움이 된다. n이 4일때, 왼쪽 정렬을 시켜주면 배열의 모양은 다음과 같다. 1 0 0 0 2 9 0 0 3 10 8 0 4 5 6 7 방향을 꺾어야 하는 수를 보면 n = 4일때 4, 7, 9, 10 에서 꺾어줘야한다. 즉, 꺾는 빈도가 1씩 줄어들고 있음을 알 수 있다. (n = 6일때를 그려서 보..

[Python] 프로그래머스 - 이진 변환 반복하기

programmers.co.kr/learn/courses/30/lessons/70129?language=python3 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 간단하게 문제에서 요구하는대로 풀면 되는 문제이다. 1. cnt에 s문자열 중 0의 갯수를 세서 증가시키고, s에서 0을 제거해준다. 2. new_s에 s의 길이를 2진법으로 변환하면 0b110 이런꼴로 나오기때문에 앞에 0b를 없앤 2번째 인덱스부터 저장해준다. 3. new_s가 '1'이 될때까지 반복 def solution(s): answer = [] cnt, t = 0, 0 while True: t += 1 cnt += s.count('0') s = s.replace('0', '') new_s = bin(len(..

[Python] 프로그래머스 - 신규 아이디 추천

programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 2021 카카오 블라인드 코딩테스트 기출문제이다. '정규표현식(Regular Expression)' 에 대해 묻는 문제이다. 예전에 웹해킹 공부를 잠깐 할 때, 대충 공부해서 잘 생각이 나지 않아 노가다로 일단 풀었다. import re def solution(new_id): # 1단계 answer = new_id.lower() # 2단계 answer = re.sub(..

[Python] 프로그래머스 - 소수 만들기

programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 이제 '소수'하면 바로 에라토스테네스의 체가 떠오른다. 1. nums의 각 원소가 1이상 1000이하이고 서로 다른 3개의 수를 고르는 것이므로 최대값이 2997이다. 널널하게 is_prime을 3000칸 만들어두고 에라토스테네스의 체를 사용하여 소수이면 그 index를 True로, 아니면 False로 만든다. 2. prime = is_primes(3000..

[Python] 프로그래머스 - 뉴스 클러스터링

programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 2018 KAKAO BLIND RECRUITMENT(카카오 공채 1차)에 나온 문제이다. 1. 대소문자 구별을 하지 않으므로 str1과 str2 모두 대문자로 변환한다. 2. str1을 돌며 두 글자씩 끊어서 다중집합의 원소로 만들고 A에 넣는다. 두 글자로 끊은 원소가 이미 A에 있다면 갯수를 1증가시키고 아니면 새로운 index를 만들어준다. (영문자..

[Python] 프로그래머스 - 정수 삼각형

programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 1. 먼저 triangle 배열과 같은 모양의 dp 2차원 배열을 만든다. 2. 마지막 줄부터 올라갈 것이므로 dp의 마지막줄은 triangle의 마지막 줄과 같게 만들어준다. 3. 마지막에서 두번째 줄부터해서 dp[i][j]에 (밑의 두 숫자 중 큰 값 + triangle[i][j]값)을 넣어준다. 4. 최종적으로 맨 윗줄에 최댓값이 저장되므로 dp[0][0]을 return해준다. def solution(triangle): length = len(t..

[Python] 프로그래머스 - 주식가격

programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 스택이 개념은 쉬운데, 마스터하기는 매우 어려운 자료구조인 것 같다. (나만 그런가..) 스택을 활용해 푸는 문제들이 유독 어렵게 느껴진다... 1. answer에 len(prices)-1부터 0까지 넣어준다. prices길이가 5이면 answer = [4, 3, 2, 1, 0] 2. prices가 [1, 2, 3, 2, 3]일 때, ..

[Python] 프로그래머스 - 소수 찾기

programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 처음에 numbers에 있는 숫자들에 대해 모든 경우의 수를 구해야 한다. 이 문제를 풀고 나서 다른 사람들의 풀이를 보니 다양한 방법이 존재했다. 나는 itertools모듈의 permutations함수를 사용했다. 1. numbers에 있는 숫자를 num배열에 넣고 dab에도 넣어준다. (한자리 수는 따로 처리) -> permutations(num, 1)을 하..