비밀번호
65
tkv00
5 asked
0
package 인프런.시뮬레이션_복습01;
import java.util.HashMap;
import java.util.Map;
public class 비밀번호 {
public static class Point{
int row;
int col;
Point(int row,int col){
this.row=row;
this.col=col;
}
}
private static Map<Integer,Point> map;
private static final int INF=3;
private static int getDistance(int row1,int col1,int row2,int col2){
return (int)Math.pow(row1-row2,2) + (int)Math.pow(col1-col2,2);
}
private static boolean isValid(int dis){
//거리가 대각선 포함 이동시간이 1인 경우
if(dis<=2) return true;
return false;
}
static class Solution {
public int solution(int[] keypad, String password){
int time = 0;
map=new HashMap<>();
for(int i=0;i<INF*INF;i++){
map.put(keypad[i],new Point(i/3,i%3));
}
String[] inputs=password.split("");
/**
* 시작 값 초기화
*/
int nowX=map.get(Integer.parseInt(inputs[0])).row,nowY=map.get(Integer.parseInt(inputs[0])).col;
for(int i=1;i<inputs.length;i++){
int x=Integer.parseInt(inputs[i]);
int nRow=map.get(x).row;
int nCol=map.get(x).col;
if(nowX==nRow && nowY==nCol) continue;
if(isValid(getDistance(nowX,nowY,nRow,nCol))){
time++;
}else{
time+=2;
}
nowX=nRow;
nowY=nCol;
}
return time;
}
public static void main(String[] args){
Solution T = new Solution();
System.out.println(T.solution(new int[]{2, 5, 3, 7, 1, 6, 4, 9, 8}, "7596218"));
System.out.println(T.solution(new int[]{1, 5, 7, 3, 2, 8, 9, 4, 6}, "63855526592"));
System.out.println(T.solution(new int[]{2, 9, 3, 7, 8, 6, 4, 5, 1}, "323254677"));
System.out.println(T.solution(new int[]{1, 6, 7, 3, 8, 9, 4, 5, 2}, "3337772122"));
}
}
}해시맵을 사용하여 풀었는데 이 방법도 시간 복잡도 혹은 공간 복잡도면에서 괜찮나요??
java
코딩-테스트
Answer 1
과일 가져가기 이러한 경우에는 반례가 생기지 않나요?
0
161
2
cpu 스케줄링
0
105
2
외부 문제 질문
0
122
2
가장 많이 사용된 회의실
0
117
2
심사위원 문제 시간복잡도 질문
0
127
1
현관문 출입순서
0
96
1
미로의 최단거리 통로
0
74
1
집으로 이동 문제 코드
0
124
1
채점 사이트 개설
0
161
2
송아지를 잡자
1
110
1
다익스트라 + 환승횟수
0
135
2
문제풀이 해설 질문입니다.
0
124
2
"이동 횟수" 문제가 변형된다면?
0
155
2
예제 3번의 정답이 이해가 되지 않아요 선생님 ㅜㅜ
0
248
1
"비밀번호" 문제 확인 부탁드립니다!
0
170
1
최대 길이 연속수열 질문
0
192
1
잃어버린 강아지 문제 count 관련 질문있습니다
0
202
1
바둑대회 질문입니당
0
221
1
5. "최대 길이 바이토닉 수열" 에서 설명해주신 방법과 제가 직접 구현한 방법이 달라, 확인 한번 부탁드립니다
0
310
1
알파코드 풀이질문입니다
0
216
1
7번 비밀 번호 문제에 시간복잡도가 궁금합니다!
0
162
1
혹시 이렇게 작성해도 괜찮나요?
0
284
2
문제풀이 확인 부탁드립니다.
0
244
1
혼자서 푼 문제 확인 부탁드립니다.
0
298
1

