728x90
반응형
SMALL

코딩 테스트 34

프로그래머스) 올바른 괄호 Lv2

이번에도 래벨 2 도전! 문자열 s 에 랜덤의 (, ) 괄호가 주어지고 괄호를 바르게 짝지었을 때 true, 아닐 경우 false 를 리턴하는 문제이다. 처음 문제를 풀 때 () 코드가 있을 경우 "" 으로 변경을 하는 코드를 작성했다! 돌려보니 문제는 모두 맞는데 효율성의 문제가 발생했다... class Solution { boolean solution(String s) { boolean answer = true; int cur = 0; while(s.length() >= 0){ int fur = s.length(); s = s.replaceAll("\\(\\)",""); if(s.length() == 0){ break; } if(cur == fur){ break; } cur = fur; } retur..

코딩 테스트 2024.02.08

프로그래머스) 이진 변환 반복하기 Lv2

블로그를 만든 후 첫번째 코테 2래벨 문제!! 몇개 풀어보긴 했는데 쉬운건 래벨 1짜리보다 풀만한 것 같다 ㅎㅎ! 이 문제는 0과 1로 구성된 문자열에서 0을 제외하고 그 길이를 2진법으로 변환하는 작업을 반복해서 1이 될 때 까지의 횟수와 제외된 0의 갯수를 카운트하는 문제이다 나는 위 과정을 구현을 한뒤에 while 문으로 자릿수가 1이 될 때까지 반복해서 문제를 해결했다~ 정답 import java.util.*; class Solution { public int[] solution(String s) { int[] answer = new int[2]; int countZero = 0; int ck = 0; while(s.length() > 1){ for(int i=0; i

코딩 테스트 2024.02.08

프로그래머스) 예산 Lv1

각각 부서마다 필요한 물품을 예산 안에서 최대한 많이 뿌리는 코딩문제! 부서별로 신청한 금액을 배열로 정렬한 뒤 예산보다 초과 시 break 만 걸어주면 해결되는 문제! 쉽게 푼 문제라 뭔가 기분이 좋았다 ㅎㅎ 정답 import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; int cur = 0; Arrays.sort(d); // cur : 모두 더한 값 // answer : 모두 더한 횟수 for(int i=0; i budget) break; else answer++; } return answer; } } 출처 프로그래머스 - https://school.programmers.co.kr/lea..

코딩 테스트 2024.02.07

프로그래머스) 키패드 누르기 Lv1

역시 카카오 래벨 1 문제도 호락호락하지 않다 스마트폰의 각각 키패드 왼손과 오른손 번호를 모두 L과 R로 셋팅을 했다. 그리고 맨 처음 숫자를 클릭할 때 오른손과 왼속을 셋팅까지 했다. import java.util.*; class Solution { public String solution(int[] numbers, String hand) { String answer = ""; // 현재 숫자를 담을 변수 int cur = 0; // 각 숫자간의 거리 정하기 Map checkNo = new HashMap(); for(int i=0; i

코딩 테스트 2024.02.07

프로그래머스) 숫자 문자열과 영단어

너무 쉽게 푼 문제라 정리안하고 넘어가려고 했는데 다른 사람 풀이를 보고 감동을 먹어서 블로그에 끄적끄적 하는 중... 솔직히 저는 너무 단순해서 import java.util.*; class Solution { public int solution(String s) { s= s.replace("one", "1"); s= s.replace("two", "2"); s= s.replace("three", "3"); s= s.replace("four", "4"); s= s.replace("five", "5"); s= s.replace("six", "6"); s= s.replace("seven", "7"); s= s.replace("eight", "8"); s= s.replace("nine", "9"); s= s..

코딩 테스트 2024.02.07

프로그래머스) 약수의 개수와 덧셈 Lv1

요즘 코테 자신감이 떨어져서 자신감회복용으로 쉬운 문제들을 풀어나가고 있다(효과가 있을지도?!) 약수의 개수에 따라 해당 숫자를 더할지 뺄지를 결정하는 문제인데 나는 약수의 갯수를 구하는 메서드를 새로 하나 추가해서 boolean 값을 받아올 수 있게끔 만들었다! 정답 class Solution { public int solution(int left, int right) { int answer = 0; for(int i=left; i

코딩 테스트 2024.02.06

프로그래머스) 두 개 뽑아서 더하기 Lv1

손풀기 문제로 쉬워보이는 문제를 뽑아서 풀었는데 ArrayList 중복 제거 방법을 만들어보려고 하다가 살짝 헤맸다... 이 문제는 각각 순서대로 ① 더한 값들을 모두 ArrayList에 저장 ② ArrayList 중복 제거 ③ ArrayList 값 배열에 넣기 ④ 배열 정렬 위 방식대로 문제를 해결했다 되게 정석적이고 쉬운 방식이긴한데 소스가 길어져서 다른 훌륭한 답변이 있나 다른 분들 답을 구경했는데 세상에.... 리턴 타입을 바꿔도 정답으로 처리가 된다 흠.... 그렇다면 내꺼 소스도 굳이 ArrayList를 배열로 변환하지 않아도 됬었겠다 생각이 들었다 ㅎㅎ 코테 문제는 문제를 풀고 다른 사람들은 어떻게 문제를 풀었는지 구경하는게 재밌는거같다! 정답 import java.util.*; import..

코딩 테스트 2024.02.06

프로그래머스) K번째 수 Lv1

배열 안 특정 범위 내에서 정렬은 한 뒤 k 번째 수를 구하는 문제! 배열의 범위를 자르는 방법에 대해서 이것저것 쑤시고, commands 랑 같이 사용하려고 하다보니 for문이 4개나 중첩되어가고 있었다... 이건 나도 보기 어렵고 아무리 잘쳐줘도 정답은 아닌 것 같아 고민을 좀 하다 힌트(질문하기)를 사용했다 참고한 내용 중 commands에 나오는 시작번호, 끝번호, 선택 번호를 변수로 두고 배열과 함께 처리하는 메서드를 만들어서 처리하는 방법을 확인하고 문제를 해결하였다! 그리고 다른 사람들은 어떻게 풀었나 확인을 해보니 배열을 정렬하는 함수 Arrays.copyOfRange 를 사용하여 문제를 풀었드라.... Arrays.copyOfRange(array, commands[i][0]-1, comm..

코딩 테스트 2024.02.05

프로그래머스) 기사단원의 무기 Lv1

1래밸 문제들 중 손풀기용으로 정답률이 높은 문제를 풀었다! 약수의 갯수를 구하고 제한 숫자가 넘으면 해당 숫자로 변경해야하는 문제 약수를 구하는 방법이 생각이 나질않아 구글링해볼까.... 하다가 그럼 안되지! 하고 열심히 고민을 해서 풀어보았다 후다닥 풀고 슬적 기대하면서 코드 실행을 해봤는데 테스트1 통과 테스트2 실패 class Solution { public int solution(int number, int limit, int power) { int answer = 0; for(int i=1; i

코딩 테스트 2024.02.05

프로그래머스) 대충 만든 자판 Lv1

지난 문제만 어려운줄 알았는데 이번거도 쉽지않다;; 1래벨이 어려운건지 아님 내가 못하는건지.... 키보드의 자판순서를 위한 for문, targets를 비교하기위한 for문, 순서대로 처리하기 위한 for문 3개를 만들다보니 너무 어지럽고 정신없어서 처음부터 다시 코딩했다 (실패한 흔적 ↓ ) import java.util.*; class Solution { public int[] solution(String[] keymap, String[] targets) { int[] answer = new int[targets.length]; int chk = 0; for(int i=0; i

코딩 테스트 2024.02.04
728x90
반응형
LIST