기본 콘텐츠로 건너뛰기

7월, 2023의 게시물 표시

코딩 테스트 - 고고학 최고의 발견

package programmers ; class 고고학 _ 최고의 _ 발견 _Java_230731 { // 출처 : https://velog.io/@ddongh1122/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B3%A0%EA%B3%A0%ED%95%99-%EC%B5%9C%EA%B3%A0%EC%9D%98-%EB%B0%9C%EA%B2%AC /* 고고학자인 혜선은 오래전부터 성궤의 행방을 추적해왔습니다 . 그동안 그의 연구는 주류 학자들로부터 인정받지 못했었지만 , 혜선이는 포기하지 않고 조사를 계속했고 마침내 성궤의 행방을 알아내었습니다 . 그러나 오래전 누군가로부터 봉인된 성궤는 특별한 잠금장치에 의해 보호되고 있었습니다 . 잠금장치는 일종의 퍼즐과 연결되어 퍼즐을 해결하면 열리는 것으로 보입니다 . 퍼즐은 시계들이 행렬을 이루는 구조물인데 하나의 시계에 시곗바늘은 하나씩만 있습니다 . 각 시곗바늘은 시계방향으로만 돌릴 수 있고 한 번의 조작으로 90 도씩 돌릴 수 있습니다 . 시계들은 기계장치에 의해 연결되어 있어 어떤 시계의 시곗바늘을 돌리면 그 시계의 상하좌우로 인접한 시계들의 시곗바늘도 함께 돌아갑니다 . 행렬의 모서리에 위치한 시계의 시곗바늘을 돌리는 경우에는 인접한 세 시계의 시곗바늘들이 함께 돌아가며 , 꼭짓점에 위치한 시계의 시곗바늘을 돌리는 경우에는 인접한 두 시계의 시곗바늘들이 함께 돌아갑니다 . 각 시계는 12 시 , 3 시 , 6 시 , 9 시 방향 중의 한 방향을 가리키고 있습니다 . 각 시계의 시곗바늘을 적절히 조작하여 모든 시곗바늘이 12 시 방향을 가리키면 퍼즐이 해결되어 성궤를 봉인하고 있는 잠금장치가 열릴 것입니다 . 노후화된 퍼즐 기계장치가 걱정되었던 혜선은 가능한 최소한의 조작으로 퍼즐을 해결하려고 합니다 . 시곗바...

코딩 테스트 - 수 조작하기 2

package programmers ; import java.util.stream.Collectors ; import java.util.stream.IntStream ; class 수 _ 조작하기 _2_Java_230730 { /* 정수 배열 numLog 가 주어집니다 . 처음에 numLog[0] 에서 부터 시작해 "w", "a", "s", "d" 로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다 . "w" : 수에 1 을 더한다 . "s" : 수에 1 을 뺀다 . "d" : 수에 10 을 더한다 . "a" : 수에 10 을 뺀다 . 그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog 입니다 . 즉 , numLog[i] 는 numLog[0] 로부터 총 i 번의 조작을 가한 결과가 저장되어 있습니다 . 주어진 정수 배열 numLog 에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요 . 입출력 예 numLog result [0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1] "wsdawsdassw" */ public String solution ( int [] numLog) { String answer = "" ; for ( int i = 1 ; i < numLog. length ; i++) { int 입력된문자열 = numLog[i] - numLog[i - 1 ] ; if ( 입력된문자열 == 1 ) { answer += "w...

코딩 테스트 - 수 조작하기 1

package programmers ; import java.util.HashMap ; import java.util.Map ; class 수 _ 조작하기 _1_Java_230729 { /* 정수 n 과 문자열 control 이 주어집니다 . control 은 "w", "a", "s", "d" 의 4 개의 문자로 이루어져 있으며 , control 의 앞에서부터 순서대로 문자에 따라 n 의 값을 바꿉니다 . "w" : n 이 1 커집니다 . "s" : n 이 1 작아집니다 . "d" : n 이 10 커집니다 . "a" : n 이 10 작아집니다 . 위 규칙에 따라 n 을 바꿨을 때 가장 마지막에 나오는 n 의 값을 return 하는 solution 함수를 완성해 주세요 . */ public int solution ( int n , String control) { int answer = n ; for ( int i = 0 ; i < control.length() ; i++) { switch (control.charAt(i)) { case 'w' : answer++ ; break; case 's' : answer-- ; break; case 'd' : answer += 10 ; break; case ...