본문 바로가기

전체 글

(75)
[프로그래머스][JAVA]Lv. 2 - 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스택을 이용. 스택에 들어가는 값 int[]에 [0]는 prices의 값을, [1]에는 해당 값의 인덱스를 넣었다. 스택을 peek()한 값이 prices[i] 보다 클 경우 스택에서 값을 제거하고 정답 배열에 현제 인덱스 - 저장된 인덱스를 저장한다. 그리고 for문 이후 모든 값이 스택에 들어가거나 정리가 되면 스택이 비어질때까지 전체 길이 - 저장된 인덱스 - 1(0부터 시작하기 때문에)을 ..
[프로그래머스][JAVA]Lv. 2 - 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다. 착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다. 코니는 하루에 최소 한 개의 의상은 입습니다. HashMap을 이용해서 의상 착용 부위의 개수를 ..
[프로그래머스][JAVA]Lv. 2 - 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성. import java.util.Arrays; class Solution { public boolean solution(String[] phone_book)..
[프로그래머스][JAVA]Lv. 2 - n진수 게임 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용할 진수 = n 구해야 하는 숫자의 개수 = t 참가하는 인원 = m 플레이어의 순서 = p n진수를 이용하여 0부터 숫자를 말하기. 10 이상의 숫자는 1, 0 이렇게 나눠서 말하기. 10~15는 A~F로 출력하기. 0부터 전체 플레이어의 수(m)*미리 구해야 하는 수(t)를 for문을 이용하여 반복 10~15는 A~F로 출력해야하기 때문에 조건을 걸어두고 이렇게 나누면서 구하면 뒤집히기 때..
[JAVA] 정렬 여러가지 버블 정렬 선택 정렬 삽입 정렬 퀵 정렬 병합 정렬 기수 정렬 1. 버블 정렬 두 인접한 데이터의 크기를 비교하여 정렬. 간단한 구조, 느린 속도. 시간복잡도 : O(n^2) int[] n = {5,4,3,2,1,1,2,3,4,5}; // 버블 정렬 for (int i = 0; i n[j+1]) { int temp = n[j]; n[j] = n[j+1]; n[j+1] = temp; } } } 결과 : [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] 인접한 데이터끼리 자리교체가 이루어지기 때문에 맨 마지막 부터 정렬되기 시작한다 -> 길이를 줄여나간다. 더 이상 자리교체가 ..
[프로그래머스][JAVA]Lv. 2 - 파일명 정렬 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 파일은 HEAD, NUMBER, TAIL 부분으로 나눌 수 있다. 파일명 HEAD NUMBER TAIL foo9.txt foo 9 .txt foo010bar020.zip foo 010 bar020.zip F-15 F- 15 (빈 문자열) HEAD는 숫자가 아닌 문자로 이루어져 있으며, 최소한 한 글자 이상이다. NUMBER는 한 글자에서 최대 다섯 글자 사이의 연속된 숫자로 이루어져 있으며, 앞쪽..
[프로그래머스][JAVA]Lv. 1 - 달리기 경주 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr callings 배열에서 선수 이름이 불릴 때마다 이전 사람과 순위를 바꾸는 문제 // 실패 코드 import java.util.ArrayList; import java.util.Arrays; class Solution { public String[] solution(String[] players, String[] callings) { String[] answer = {}; ArrayList s..
[프로그래머스][JAVA]Lv. 2 - 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. 입력에서 처리되지 않은 다음 글자가 남아있다면(c), w+c에 해당하는 단어를 사전에 등록한다. 단계 2로 돌아간다. 해당 조건으로 주어진 문자열을 압축하는 문제였다. Strin..