728x90
Lv. 1 숫자 문자열과 영단어 - 성공
0를 빠뜨리는 실수.
String.replace()를 적용한 문자열을 따로 할당을 안 하는 실수.
class Solution {
public int solution(String s) {
int answer = 0;
String arr = s;
arr = arr.replace("one","1");
arr = arr.replace("two","2");
arr = arr.replace("three","3");
arr = arr.replace("four","4");
arr = arr.replace("five","5");
arr = arr.replace("six","6");
arr = arr.replace("seven", "7");
arr = arr.replace("eight", "8");
arr = arr.replace("nine", "9");
System.out.println("s :" + arr);
answer = Integer.parseInt(arr);
return answer;
}
}
class Solution {
public int solution(String s) {
int answer = 0;
String arr = s;
arr = arr.replace("zero","0");
arr = arr.replace("one","1");
arr = arr.replace("two","2");
arr = arr.replace("three","3");
arr = arr.replace("four","4");
arr = arr.replace("five","5");
arr = arr.replace("six","6");
arr = arr.replace("seven", "7");
arr = arr.replace("eight", "8");
arr = arr.replace("nine", "9");
answer = Integer.parseInt(arr);
return answer;
}
}
Lv. 1 키패드 누르기 - 성공
내풀이(1) : 정확도 60%
대각선이 한칸이 아닌 두칸 이상인 경우 예외발생.
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
StringBuilder sb = new StringBuilder();
int[] left = {3,0};//new int[2];
int[] right = {3,2};
ArrayList<Integer>[] arr = new ArrayList[12];
for(int i = 0 ; i< 12; i++){
arr[i] = new ArrayList<Integer>();
}
arr[0].add(3);
arr[0].add(1);
arr[1].add(0);
arr[1].add(0);
arr[2].add(0);
arr[2].add(1);
arr[3].add(0);
arr[3].add(2);
arr[4].add(1);
arr[4].add(0);
arr[5].add(1);
arr[5].add(1);
arr[6].add(1);
arr[6].add(2);
arr[7].add(2);
arr[7].add(0);
arr[8].add(2);
arr[8].add(1);
arr[9].add(2);
arr[9].add(3);
arr[10].add(3);
arr[10].add(0);
arr[11].add(3);
arr[11].add(2);
for(int i = 0 ; i < numbers.length ; i++){
int buttonNumber = numbers[i];
if(buttonNumber == 1 || buttonNumber == 4 || buttonNumber == 7){
sb.append("L");
left[0] = arr[buttonNumber].get(0);
left[1] = arr[buttonNumber].get(1);
}else if(buttonNumber == 3 || buttonNumber == 6 || buttonNumber == 9){
sb.append("R");
right[0] = arr[buttonNumber].get(0);
right[1] = arr[buttonNumber].get(1);
}else{
//가운데 라인일 때
int nextRow = arr[buttonNumber].get(0);
int nextCol = arr[buttonNumber].get(1);
double lengthLeft = (left[0] - nextRow)*(left[0] - nextRow) +(left[1] - nextCol)*(left[1] - nextCol) ;
lengthLeft = Math.sqrt(lengthLeft);
double lengthRigth = (right[0] - nextRow)*(right[0] - nextRow) +(right[1] - nextCol)*(right[1] - nextCol) ;
lengthRigth = Math.sqrt(lengthRigth);
String ss = hand.toUpperCase();
char s = ss.charAt(0);
if(lengthLeft > lengthRigth){
s = 'R';
right[0] = arr[buttonNumber].get(0);
right[1] = arr[buttonNumber].get(1);
sb.append('R');
}else if(lengthLeft < lengthRigth){
s = 'L';
left[0] = arr[buttonNumber].get(0);
left[1] = arr[buttonNumber].get(1);
sb.append('L');
}else if(lengthLeft == lengthRigth){
if(hand.equals("right")){
right[0] = arr[buttonNumber].get(0);
right[1] = arr[buttonNumber].get(1);
sb.append('R');
}else{
left[0] = arr[buttonNumber].get(0);
left[1] = arr[buttonNumber].get(1);
sb.append('L');
}
}
}
}
answer = sb.toString();
return answer;
}
}
좌표 설정 실수...
import java.io.*;
import java.util.*;
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
StringBuilder sb = new StringBuilder();
int[] left = {3,0};//new int[2];
int[] right = {3,2};
ArrayList<Integer>[] arr = new ArrayList[12];
for(int i = 0 ; i< 12; i++){
arr[i] = new ArrayList<Integer>();
}
arr[0].add(3);
arr[0].add(1);
arr[1].add(0);
arr[1].add(0);
arr[2].add(0);
arr[2].add(1);
arr[3].add(0);
arr[3].add(2);
arr[4].add(1);
arr[4].add(0);
arr[5].add(1);
arr[5].add(1);
arr[6].add(1);
arr[6].add(2);
arr[7].add(2);
arr[7].add(0);
arr[8].add(2);
arr[8].add(1);
arr[9].add(2);
arr[9].add(2);
arr[10].add(3);
arr[10].add(0);
arr[11].add(3);
arr[11].add(2);
for(int i = 0 ; i < numbers.length ; i++){
int buttonNumber = numbers[i];
if(buttonNumber == 1 || buttonNumber == 4 || buttonNumber == 7){
sb.append("L");
left[0] = arr[buttonNumber].get(0);
left[1] = arr[buttonNumber].get(1);
}else if(buttonNumber == 3 || buttonNumber == 6 || buttonNumber == 9){
sb.append("R");
right[0] = arr[buttonNumber].get(0);
right[1] = arr[buttonNumber].get(1);
}else{
//가운데 라인일 때
int nextRow = arr[buttonNumber].get(0);
int nextCol = arr[buttonNumber].get(1);
int lengthLeft = Math.abs(left[0] - nextRow) + Math.abs(left[1] - nextCol) ;
int lengthRigth = Math.abs(right[0] - nextRow) + Math.abs(right[1] - nextCol) ;
String ss = hand.toUpperCase();
char s = ss.charAt(0);
if(lengthLeft > lengthRigth){
s = 'R';
right[0] = arr[buttonNumber].get(0);
right[1] = arr[buttonNumber].get(1);
sb.append('R');
}else if(lengthLeft < lengthRigth){
s = 'L';
left[0] = arr[buttonNumber].get(0);
left[1] = arr[buttonNumber].get(1);
sb.append('L');
}else if(lengthLeft == lengthRigth){
if(hand.equals("right")){
right[0] = arr[buttonNumber].get(0);
right[1] = arr[buttonNumber].get(1);
sb.append('R');
}else{
left[0] = arr[buttonNumber].get(0);
left[1] = arr[buttonNumber].get(1);
sb.append('L');
}
}
}
}
answer = sb.toString();
return answer;
}
}
728x90
'알고리즘' 카테고리의 다른 글
[Algorithm] Dijkstra 파티(파티) - 에이젠 (0) | 2022.08.24 |
---|---|
[Algorithm] Dijkstra 최소비용 구하기 - 에이젠 (0) | 2022.08.23 |
[Algorithm] 6월 24일 알고리즘 연습 - 에이젠 (0) | 2022.06.24 |
[Algorithm] 6월23일 알고리즘 연습 - 에이젠 (0) | 2022.06.23 |
[Algorithm] 6월21일 알고리즘 연습(프로그래머스 LEVEL2) - 에이젠 (0) | 2022.06.21 |
댓글