프로그래밍/Algorithm 35

[프로그래머스] 둘만의 암호

문제 https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 skip에 포함된 문자인지 확인 하는 부분에서도 코드 값이 'z'를 넘어가는 경우 소문자 알파벳 범위를 넘어서지 않도록 주의 import java.util.HashSet; import java.util.Set; public class Q30_155652 { public String solution(String s, String skip, int index) { Set s..

[프로그래머스] 카드 뭉치

문제 https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 조건에 의하면 카드를 사용 해야지만 다음 카드를 사용 할 수 있으며 사용한 카드는 재사용이 불가능 public class Q30_159994 { public String solution(String[] cards1, String[] cards2, String[] goal) { int index1 = 0; int index2 = 0; for (String text : go..

[프로그래머스] 대충 만든 자판

문제 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 keymap에서 각 알파벳을 입력 하기 위한 버튼의 최소 입력 횟수를 Map에 구하고, targets에 할당된 문자열을 입력하기 위한 버튼의 최소 입력 횟수를 위에서 구한 Map에서 구하여 합산 입력 할 수 없는 알파벳이 있는 경우 -1로 설정 import java.util.HashMap; import java.util.Map; /** * https://school.pr..

[프로그래머스] 바탕화면 정리

문제 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 바탕화면에서 정리 해야 할 파일들의 좌표중 가장 왼쪽, 가장 오른쪽, 가장 윗쪽, 가장 아래쪽을 구하기 public class Q30_161990 { public int[] solution(String[] wallpaper) { int lux = Integer.MAX_VALUE; int luy = Integer.MAX_VALUE; int rux = 0; int ruy =..

[프로그래머스] 덧칠하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 할당된 벽의 길이는 중요하지 않고 칠이 벗겨진 벽을 붓의 가장 왼쪽 기준으로 칠하고 붓의 길이 만큼 이동 1미터씩 움직이며 칠하기를 반복 칠한 횟수를 반환 public class Q30_161989 { public int solution(int n, int m, int[] section) { int answer = 0; int index = 0; for (int i : ..

[프로그래머스] 달리기 경주

문제 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 players에는 참가자들의 이름의 배열, callings에는 불려진 이름 순서의 배열 우선 불려진 이름에 따라 players의 요소간의 순서를 변경을 쉽게 하기 위해서 List로 변환하고 이름이 불려질 때 마다 해당 이름의 순서를 구하고 그 순서의 앞 순서와 이름을 교체 import java.util.*; public class Q30_178871 { // 시간 초과 ..

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

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 순열을 구하는 문제 순열에 대한 결과가 나올 때마다 숫자로 변환해 Set에 넣어서 중복을 제거 구해진 숫자들에서 소수의 갯수를 반환 import java.util.*; public class Q30_42839 { Set set = new HashSet(); public int solution(String numbers) { int length = numbers.length..

[프로그래머스] 단어 변환

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 깊이 우선 탐색과 넓이 우선 탐색 두가지 방법으로 풀이 깊이 우선 탐색인 경우에는 이전에 변환 했던 단어를 체크 하여 동일 순환에 빠지지 않도록 처리 public class Q30_43163_dfs { private boolean[] visited = null; public int solution(String begin, String target, String[] word..

[프로그래머스] 숫자의 표현

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 문제 설명의 내용을 바탕으로 구현 1부터 n까지 차례로 연속된 값을 더하여 n을 초과하기 전에 합이 n인 경우의 갯수를 반환 public class Q30_12924 { public int solution(int n) { int answer = 0; for (int i = 1; i

[프로그래머스] 최댓값과 최솟값

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 문자열을 기준에 맞추어 나누고 int 타입으로 변환 후 모든 값을 비교하여 최솟값과 최댓값을 구함 import java.util.Arrays; public class Q30_12939 { public String solution(String s) { int[] numbers = Arrays.stream(s.split(" ")) .mapToInt((item -> Intege..