Programmers 14

[ 프로그래머스 ] 올바른 괄호 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 stack의 개념 :가장 최근에 들어간 데이터가 가장 먼저 나오는 후입선출(Last In First Out)의 구조 stack 함수 : push(), pop(), imEmpty() 닫는 괄호로 시작하는 경우 처리 필요 ( 비정상적으로 시작하는 경우 처리 ) stack을 사용 안 하고 풀이하는 방법도 체크해 보기 3. 정답 코드 확인 및 활용 메소드 체크 3-1 : 정답 코드 확인 import java.util.*; class Solution { boolean solution(String s) { boolean answer = true; Stack bracket = new Stack(); for (int i = 0; i < s.length(); i++)..

Programmers 2023.01.19

[ 프로그래머스 ] 최소 직사각형 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 길이가 긴 값들 중 가장 큰 값, 길이가 작은 값들 중 가장 큰 값 각각의 명함들의 가로와 세로길이 중 긴 쪽을 가로로 재배치 가로값 = paramMax 변수로, 세로값은 = paramMin 변수로 비교 가로값 중 최댓값, 세로값 중 최댓값 최댓값을 모아놓고 그중 최댓값, 최솟값을 모아놓고 그중 최댓값 3. 정답 코드 확인 및 활용 메소드 체크 3-1 : 정답 코드 확인 class Solution { public int solution(int[][] sizes) { int max = 0; int min = 0; for (int[] size : sizes) { int paramMax = Math.max(size[0], size[1]); int param..

Programmers/JAVA 2023.01.14

[ ArrayList 생성 ], [ ArrayList 메소드 ], [ ArrayList ↔ List 변경 ]

-- INDEX -- 1. ArrayList 생성 2. ArrayList 메소드 3. 배열 변경 import java.util.ArrayList; add(); / addAll(); clear(); / clone(); contains(); / forEach(); / get(); toArray(); ArrayList arrayList = new ArrayList(); indexOf(); / lastIndexOf(); size(); / isEmpty() iterator(); / remove(); removeAll(); -- retainAll(); asList(); ArrayList arrayList = new ArrayList (); set(); / sort(); / toArray(); stream(); 1...

Programmers/JAVA 2023.01.14

[ 프로그래머스 ] 가장 가까운 같은 글자 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 가장 가까운 곳에 있는 같은 글자의 index 찾기. indexOf(String Value, FromIndex)로 처음 나오는 인덱스의 다음부터 찾기 시도 -> 중복 여러 개면 체크 불가능 lastIndexOf(String Value, ToIndex)로 체크 해보려고 함 -> ToIndex라서 0 나옴 StringBuilder를 활용해서 풀이해 보기로 생각 해당 문자 이어 주기 전의 lastIndex와 현재 StringBuilder의 length를 활용하여 계산 sb.length() - sb.lastIndexOf(check); 3. 정답 코드 확인 및 활용 메소드 체크 3-1 : 정답 코드 확인 import java.util.*; class Solut..

Programmers/JAVA 2023.01.13

[ 프로그래머스 ] JadenCase 문자열 만들기 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 소문자로 만든다 -> 공백을 기준으로 문자열 배열 얻는다 -> 맨 앞글자를 대문자로 바꿔준다. 쉬웠다.. 하지만 여러 가지 고려할 상황들을 추가해주어야 하였다. 공백이 연속으로 나오면 결괏값에도 공백이 연속으로 나오도록 해주어야 한다. 주어진 문자열의 마지막이 공백으로 끝난다면 공백으로 출력되도록 해주어야 한다. 이 점만 생각해서 풀이하면 풀이가 쉬워질 것 같다. 3. 정답 코드 확인 및 활용 메소드 체크 3-1 : 정답 코드 확인 class Solution { public String solution(String s) { String answer = ""; //소문자로 만들고 공백 기준으로 문자배열 얻기 s = s.toLowerCase(); Stri..

Programmers/JAVA 2023.01.10

[ 프로그래머스 ] 마법의 엘리베이터 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 엘리베이터 버튼은 절댓값이 10c (c ≥ 0 인 정수) 형태인 정수들이라는 점 더해서 10을 만들던지 / 빼서 0을 만들던지 해야 하는데 10을 만들면 위의 자릿수는 +1 된다는 점과 값이 5일 때의 처리가 관건 5보다 작다면 빼서 0을 만드는 것이 최소 횟수 일 것이고 5보다 크다면 더해서 10을 만드는 것이 최소 횟수 일 것이다. 5일 때는? - 한 자릿수 높은 값을 체크해보아야한다. ( 일의 자리면 십의 자릿수 체크 ) 한 자릿수 높은 값이 5보다 크거나 같다면? 10을 만들어 주는 것이 좋다. ( 수 증가로 더하는 횟수 감소 ) 한 자릿수 높은 값이 5보다 작다면? 0을 만들어 주는 것이 좋다. ( 빼는 횟수 감소 ) 3. 정답 코드 확인 및..

Programmers/JAVA 2023.01.06

[ 프로그래머스 ] 숫자 문자열과 영단어 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 숫자에 대응되는 영단어 처리 영단어를 숫자로 바꾸는 것이므로 변경 방법 생각 0~9까지 10개라는 점 체크 및 형 변환 체크 3. 정답 코드 확인 및 활용 메소드 체크 3-1 : 정답 코드 확인 replaceAll() 과 replace를 활용하여 풀이 class Solution { public int solution(String s) { String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; for(int i = 0; i < strArr.length; i++) { s = s.replaceAll(strArr[i], Integer.t..

Programmers/JAVA 2023.01.06

[ 프로그래머스 ] 비밀지도 - Java

1. 문제 설명 2. 문제 풀이 핵심이라 생각하는 점 2진수 변환 개념 2개의 지도에서 1개라도 막혀있으면 #으로 표시 막혀있는 기준은 2진수로 표현하였을 시 그 칸의 값이 1이라면 막혀있다고 표시됨 즉, 해당 자리 수의 값을 2로 나눈 나머지가 0이 아니라면 막혀있는 것(#)이라고 이라고 판단해서 풀이함 3. 정답 코드 확인 및 활용 메소드 체크 3-1 : 정답 코드 확인 StringBuilder.append() : 사용했더니 기본 문자열의 뒤로 붙여지는 문제점 만남 StringBuilder.insert(index, value)를 사용하여서 해결 class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answ..

Programmers/JAVA 2023.01.06

[ 문자열 중복제거 ] , [ 문자배열 중복제거 ]

-- INDEX -- 1. 문자열 중복제거 2. 문자배열 중복제거 3. Method 체크 indexOf() 활용 contains() 활용 LinkedHashSet 활용 indexOf() toCharArrays() contains() String.valueOf() Arrays메소드 { asList(), toString(), copyOf(), Sort() } 1. 문자열 중복제거 1-1 : if (str.indexOf(str.charAt(i)) == i ) answer += str.charAt(i); 문자열에서 해당 문자의 index를 구해서 중복 없는 처음이라면 더해주기 중복이라면 더해주지 않는다. public class main { public static void main(String[] args) {..

Programmers/JAVA 2022.12.31