본문 바로가기

Computer Science/알고리즘 문제풀이

(49)
Programmers > #25 winter recruit > #1 [JAVA] Winter coding #1 1. 문제 설명 문제는 대강 기억나는 대로 적어보자면, 스킬트리가 있다. 예를 들면, "ABC"라는 문자열이 있을 때, 각각 A,B,C는 스킬이며 ABC순서 대로 스킬을 배워햐 한다. 만약 skill 문자열이 "BCA" 이런식으로 주어졌을 때, skills 문자열 배열이 input으로 "BAC"로 주어진다면 기존의 skill문자열을 위반한 것이기 때문에 이는 잘못 된 문자열이다. 다만 "BCA"가 아닌 F 나 G가 들어오면 이는 무시한다. 2. 나의코드 import java.lang.String; import java.util.*; class Solution { public int solution(String skill, String[] skill_trees) { int a..
Programmers > Level 1 > #24 소수찾기 [Python] 소수 찾기 문제: https://programmers.co.kr/learn/courses/30/lessons/12921 1. 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) 2. 나의 코드 - 소수 찾기 문제는 구글링만 하면 쉽게 솔루션을 찾을 수 있지만, 이번 문제에서는 풀이보다 효율성이 더 중요한 문제였다. - 에라토스테네스의 체를 이용하여 문제를 풀었다.- 주어진 수의 범위 내에서 순서대로 2의 배수를 지우고, 3의배수를 지우고 이런 방식으로 계속 해서 마지막까지 지운다. 남는 수가 바로 소수!- Time complexity : O(nlogn)- 계산의 ..
Programmes > #23 문자열 내 마음대로 정렬하기 [Python] 문자열 내 마음대로 정렬하기 문제: https://programmers.co.kr/learn/courses/30/lessons/12915 1. 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다. 제한 조건strings는 길이 1 이상, 50이하인 배열입니다.strings의 원소는 소문자 알파벳으로 이루어져 있습니다.strings의 원소는 길이 1 이상, 100이하인 문자열입니다.모든 strings의 원소의 길이는 n보다 큽니다.인덱스 1의 문자가 같은 문자열이 여럿 일..
Programmers > Hash > #22 위장 [JAVA] 위장 문제: https://programmers.co.kr/learn/courses/30/lessons/42578?language=java 1. 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다.Nㅌ종류이름얼굴동그란 안경, 검정 선글라스상의파란색 티셔츠하의청바지겉옷긴 코트스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루..
Programmers > Sort > #21 H-Index [JAVA] H-Index 문제: https://programmers.co.kr/learn/courses/30/lessons/42747 1. 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h가 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 2. 나의 코드 - 해당 요소의 값보다 해당 ..
[Programmers] #20 라면공장 [JAVA] 라면공장 문제: https://programmers.co.kr/learn/courses/30/lessons/42629?language=java 1. 문제설명 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다. 해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다. 현재 공장에 남아있는 밀가루 수량 stock, 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량(supplies), 원래 공장으로부터 공급받을 수 있는 시점 k가 주어질 때, 밀가루가 떨어지지..
[Programmers] #19 문자열을 정수로 바꾸기 [Python] 문자열을 정수로 바꾸기 문제: https://programmers.co.kr/learn/courses/30/lessons/12925 1. 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건s의 길이는 1 이상 5이하입니다.s의 맨앞에는 부호(+, -)가 올 수 있습니다.s는 부호와 숫자로만 이루어져있습니다.s는 0으로 시작하지 않습니다. 입출력 예예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 2. 나의 코드 def solution(s): answer = 0 if len(s) >=1 and len(s)
[Programmers] #18 문자열 내 p와 y의 개수 [Python] 문자열 내 p와 y의 개수 문제: https://programmers.co.kr/learn/courses/30/lessons/12916 1. 문제설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다. 2. 나의 코드 def solution(s): answer = True if(s.count('p') + s.count('P') != s.count('..