본문 바로가기

분류 전체보기

(107)
프로그래머스 - 체육복(python) https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제접근 체육복 여분을 갖고 있는 학생과 체육복이 없는 학생을 비교해 체육복을 갖고있는 학생을 최대한 많이 만드는 경우의 수를 구하기 여분을 갖고 있는 학생은 한 명한테만 빌려줄 수 있음 자신의 앞, 뒤 번호의 학생한테만 빌려줄 수 있음 실패사례 def solution(n, lost, reserve): #여벌의 체육복을 갖고 있는사람이 도난당했을때 문제발생 #체육복을 갖고 있는 사람 answer ..
프로그래머스 전화목록(python) https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제접근 전화목록부에 있는 번호가 다른 번호의 접두어인 번호가있는지 파악하는 문제 단순히 for문 여러개를 겹치면 되겠지만 제한사항이 높아 시간초과가 남 hash를 사용하여 메모리를 이용해 시간복잡도를 줄이는 문제인듯 정답코드 def solution(phone_book): #hash를 사용하여 temp로 중간중간 저장 answer = True dic = {} for i in phone_book: ..
프로그래머스 신규아이디 추천(lv2, kotlin) https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 분석 사용자가 입력한 문자열을 주어진 단계에 맞춰 가공하는 문제 그냥 단계에 맞춰 구현만 잘 해주면 됨 정답코드 class Solution { fun solution(new_id: String): String { var answer: String = "" //1단계 val low_id = new_id.toLowerCase() //2단계 for(i in 0 until low_id.length)..
프로그래머스 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제분석 주어진 배열 prices의 길이 제한사항이 >10^5이므로 사용할 수 있는 시간복잡도는 O(n)이나 최소 O(nlogn)에 끝내야한다. 따라서 완전탐색은 불가능(n^2)하고 다른 아이디어를 사용해야한다. 이떄 메모리를 사용해서 시간복잡도를 낮추기위해서 주어진 배열을 스택에 넣고 이를 기본의 배열과 비교하는 방법 선택 def solution(prices): answer = [0] * len..
LeetCode Two Sum(Python) https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Can you solve this real interview question? Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not leetcode.com 문제접근 주어진 리스트 중에 두 원소를 합해서 target과 같은 두 원소의 index를 return하는 문제 일반적으로 생각하..
LeetCode Valid Parentheses(유효한 괄호) https://leetcode.com/problems/valid-parentheses/ Valid Parentheses - LeetCode Can you solve this real interview question? Valid Parentheses - Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: 1. Open brackets must be closed by the sam leetcode.com 문제 분석 괄호로 이루어진 문자열이 주어졌을때 해당 괄호가 올바르게 되어있는지 판별하는 문..
프로그래머스 위장(lv2, python) https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 스파이가 입을 수 있는 옷의 경우의 수를 모두 구하는 문제 스파이는 한 종류의 옷을 꼭 입어야함 아이디어 각 종류의 옷의 개수 해시를 이용해 저장하고 이를 곱하여 모든 경우의 수를 구함 입지 않는 경우도 생각하기위해 모든 옷의 종류에 +1 아무 옷도 안 입는 경우를 빼주기 위해 -1 정답 코드 def solution(clothes): # 1. 옷을 종류별로..
프로그래머스 짝지어 제거하기(lv2, python) https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 해당 조건에 의거하여 문자열을 모두 제거할 수 있으면 1 아니면 0을 리턴하는 함수를 구현하는 문제 아이디어 문자열의 길이가 10^6이므로 O(n+@)정도의 시간복잡도로 해결하면 될듯 이중 for문으로 하나하나 완전탐색해줄까 했지만 구현도 복잡하고 시간복잡도상 불가능함 이전의 문자와 다음 문자를 비교한다는 점에서 올바른 괄호 문제와 비슷하다고 판단-> 스택을 활용 문자열을 스택에 넣어서..