반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12911
class Solution {
public int countOne(int num){
int count = 0;
String deci = Integer.toBinaryString(num);
for(int i = 0; i < deci.length(); i++){
if(deci.charAt(i) == '1') count++;
}
return count;
}
public int solution(int n) {
int answer = 0;
int nsOne = countOne(n);
int m = n;
while(answer < n){
m++;
int msOne = countOne(m);
if(nsOne == msOne) answer = m;
}
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/12973
import java.util.Stack;
class Solution {
public int solution(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (!stack.isEmpty() && stack.peek() == c) {
stack.pop();
} else {
stack.push(c);
}
}
return stack.isEmpty() ? 1 : 0;
}
}
순서대로 마지막 Stack과 비교하고 다르면 넣고 같으면 빼며 마지막에 Stack의 길이를 재서 말끔히 지웠는지 체크합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/42842
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
List<Integer[]> array = new ArrayList<>();
for(int i = 1; i <= brown+yellow; i++){
if((brown+yellow)%i == 0 && i >= (brown+yellow)/i){
Integer[] by = {i, (brown+yellow)/i};
array.add(by);
}
}
for(Integer[] a : array){
if(2*a[0]+2*a[1]-4 == brown){
answer[0] = a[0];
answer[1] = a[1];
break;
}
}
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/12981
class Solution {
public int[] solution(int n, String[] words) {
int[] answer = new int[2];
int chk = 0;
for(int i = 0; i < words.length; i++){
boolean chkB = true;
if(i > 0) {
chkB = chkWord(words, words[i], i);
}
if(!chkB){
chk = i+1;
break;
}
if(i > 0 && words[i].charAt(0) != words[i-1].charAt(words[i-1].length()-1)){
chk = i+1;
break;
}
}
if(chk == 0){
answer[0] = 0;
answer[1] = 0;
} else if(chk%n == 0){
answer[0] = n;
answer[1] = chk/n;
} else {
answer[0] = chk%n;
answer[1] = chk/n + 1;
}
return answer;
}
public boolean chkWord(String[] array, String word, int index){
for(int i = 0; i < index; i++){
if(word.equals(array[i])){
return false;
}
}
return true;
}
}
후기
.toCharArray()를 보며 느낀 점은 문서 작업도 단축키를 알아야 쉽고 빠르게 작업이 가능하듯이, 코딩도 그와 같다는 생각이 들었습니다. 저런 메소드를 몰라도 저와 같이 코딩할 수는 있겠지만 메소드 하나 앎으로써 시야가 달라짐을 느꼈습니다.
이와 같은 메소드를 당장 내 것으로 만들지는 못하더라도 계속해서 노출시켜 익힘으로써 결국에는 내 것으로 만들겠다고 다짐했습니다.
새로운 시야를 밝혀준 유익한 시간이 됐습니다!
반응형
'코딩테스트 > Java' 카테고리의 다른 글
[코딩테스트] 23-12-05 프로그래머스 (0) | 2023.12.05 |
---|---|
[코딩테스트] 23-11-30 프로그래머스 (0) | 2023.11.30 |
[코딩테스트] 23-11-29 프로그래머스 (0) | 2023.11.29 |
[코딩테스트] 23-11-28 프로그래머스 (0) | 2023.11.28 |
[코딩테스트] 23-11-23 프로그래머스 (0) | 2023.11.23 |