알고리즘/프로그래머스

내 풀이 class Solution { public int solution(int[] bandage, int health, int[][] attacks) { // t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복함 // t초 연속으로 붕대를 감는데 성공하면 y만큼의 체력을 추가로 획득 // seconds == t -> +y // 공격당하면 취소당하고 // 당하는 순간에는 붕대 못감음 // 취소되면 붕대감기 연속 성공 시간 0으로 초기화 // 피해량 만큼 줄어들고 0 이하면 죽고 체력 회복 안됨 // bandage = 붕대감기 기술 정보 [t,x,y] = [붕대감기 시전 시간, 초당 회복량, 추가 회복량] // health = 최대 체력 // attacks = 공격 패턴 attacks[i] = [공..
오늘도 어김없이 해시와 친해지기 위해 해시문제를 도전!! 저번에 올렸던 해시 레벨1 문제를 기억하면서 풀어보기 도즈언!! 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return하도록 solution함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존..
Hash함수에 대해 이해도를 높이기 위해 Hash문제를 다시 풀어보았다. 나는 처음에 해시를 몰라 배열로 접근하였지만, 해시를 사용하면 속도나 효율성 측면에서 더 나은것 같아서 다시 해시를 정확히 이해할 때 까지 차근차근 문제를 접해보겠다. 문제설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participan..
해시에 대한 이해를 높이기 위해 이 문제에 도전했다. 그런데 우선 나는 해시함수에 대해 모르는게 많았고 이해도 잘 못하고 있었다. 그래서 우선 문제를 풀고 다른 사람들이 풀어놓은 코드를 보면서 이해를 높이기로 하였다. 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 점두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solu..
이건 내가 풀었다..!! 그렇지만 다른 분들의 코드를 보니 더 효율적인 게 많았다. 나는 반복문을 이용한 방법을 생각했다! 그런데 다른 분들은 replace , substring 등 함수를 이용하여 더 효율적이고 간단한 알고리즘을 구축하였다. 보고 배워야지! 우선 문제를 보자! 문제 문제 설명 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를 들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조건 n은 길이 10,000 이하인 자연수입니다. 입출력 예 nreturn 3 "수박수" 4 "수박수박" 나의 코드 class Solution { public String solution(int n) { String ..
오늘도 level1에서 모의고사 문제를 풀어봤습니다. 풀수 있을 것 같아서 도전했지만 난장판이어서 버리고 다른 분들의 코드를 보고 공부를 했습니다.. 내 힘으로 풀수 있을 때 까지 화이팅..!! 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5,..
* 코딩 공부를 하며 기초를 다지기 위해 프로그래머스 알고리즘 공부를 시작한다. Java언어를 주로 사용할 것이며 익숙해진 다음 다른 언어를 활용해 도전해 볼 것이다. 문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한..
나는이지훈
'알고리즘/프로그래머스' 카테고리의 글 목록