728x90
반응형
SMALL

문제 설명

두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다.

  • 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다.
  • index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다.
  • skip에 있는 알파벳은 제외하고 건너뜁니다.

예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c, e, f, g, h] 순서에 의해 'h'가 됩니다. 나머지 "ukks" 또한 위 규칙대로 바꾸면 "appy"가 되며 결과는 "happy"가 됩니다.

두 문자열 s와 skip, 그리고 자연수 index가 매개변수로 주어질 때 위 규칙대로 s를 변환한 결과를 return하도록 solution 함수를 완성해주세요.


제한사항

  • 5 ≤ s의 길이 ≤ 50
  • 1 ≤ skip의 길이 ≤ 10
  • s와 skip은 알파벳 소문자로만 이루어져 있습니다.
    • skip에 포함되는 알파벳은 s에 포함되지 않습니다.
  • 1 ≤ index ≤ 20

입출력 예

s skip index result

"aukks" "wbqd" 5 "happy"

입출력 예 설명

입출력 예 #1

본문 내용과 일치합니다.

package LV1;

public class H155652 {
    public String solution(String s, String skip, int index) {
        StringBuilder answer = new StringBuilder();  // 결과 문자열을 저장할 StringBuilder를 선언

        for (char c : s.toCharArray()) {  // 문자열 s를 한 문자씩 순회한다.
            int counter = index;  // counter 변수를 index로 초기화하고 변수는 알파벳을 몇 칸 이동할지를 결정한다.
            while (counter > 0) {  // counter가 0보다 클 동안 반복한다.
                c++;  // 문자 c를 한 칸 뒤로 이동시킨다.
                if (c > 'z') {  // 만약 문자 c가 'z'를 넘어갈 경우
                    c = 'a';  // 문자 c를 'a'로 돌려놓는다.
                }
                if (!skip.contains(String.valueOf(c))) {  // 만약 문자 c가 skip에 포함되지 않은 경우
                    counter--;  // counter를 하나 감소시킨다. 이는 실제로 알파벳을 한 칸 이동시키는 것을 의미한다.
                }
            }
            answer.append(c);  // 최종적으로 이동한 문자 c를 결과 문자열에 추가한다.
        }

        return answer.toString();  // 결과 문자열을 String 형태로 변환하여 반환한다.
    }
}

문자열 s의 각 문자를 주어진 index만큼 뒤로 이동시키면서, skip에 포함된 문자는 건너뛰는 암호화 규칙을 구현한다.

만약 이동하려는 문자가 알파벳 'z'를 넘어갈 경우, 알파벳 'a'로 돌아가게 되며, 최종적으로 변환된 문자열이 결과값으로 반환한다.

드디어 풀었다..!!! 1레벨 완료 

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.1' 카테고리의 다른 글

옹알이 (2)  (0) 2023.06.05
문자열 나누기  (0) 2023.05.31
[카카오 인턴] 키패드 누르기  (0) 2023.05.30
대충 만든 자판  (0) 2023.05.29
신규 아이디 추천  (0) 2023.05.24
728x90
반응형
SMALL

원티드 챌린지 시작과 동시에.. 강의를 들었습니다..

어렵군요 ㅠㅠ

저걸 보면서.. 아 공부할게 너무 많다는 걸 다시 한번 깨닫게 됩니다 ㅠ

그래도 이해할때까지 물고 늘어지면 이해가 되겠죠!

사전에 정리하고 조사한 내용을 먼저 적었고 다시 공부해서 정리할 예정입니다!

To do

  • [x] 아침 운동하기
  • [x] 코테 5문제 풀기
  • [x] 지원하기 5곳
  • [x] 면접 연습하기
  • [ ] cs 스터디 다시 준비하기

외부일정

  • [x] 집안일하기
  • [x] 피부과가기
  • [x] 정형외과가기
  • [ ] CS 스터디
  • [x] 원티드 6월 챌린지
  • [x] 원티드 백엔드 강의

 

CS 스터디는.. 강의 시간과 겹쳐 다시 조정하기로 하고 목요일로!! 화이팅!!


JVM의 정의와 메모리 구조를 아는 대로 서술해 주세요.

JVM(Java Virtual Machine) 은 자바 소스 코드를 바이트코드(.class 파일)로 컴파일하고, 이를 실행하는 역할을 담당하는 가상 머신이다. JVM은 자바 바이트코드를 어떤 기기에서든 실행할 수 있도록 하는 표준을 제공하므로, "Write Once, Run Anywhere(WORA)"라는 자바의 핵심 철학을 구현하고 있다. JVM은 메모리 관리 및 가비지 컬렉션, 스레드 관리 등의 역할도 한다.

메모리 구조

  • 메소드 영역 : JVM이 읽어 들인 각 클래스와 인터페이스에 대한 런타임 상수 풀, 필드와 메소드 데이터, 메소드와 생성자의 바이트코드, 클래스 변수 등의 정보를 저장
  • 힙 영역 : 객체와 배열이 생성되는 영역
  • 스택 영역 : 메소드를 호출할 때마다 각각의 스택 프레임이 생성되며, 지역 변수, 매개변수, 연산의 중간 결과 등을 저장하는 데 사용
  • PC Register : 현재 스레드가 실행되는 부분의 주소와 명령을 저장하고 있는 영역
  • Native Method Stack : 자바 외의 언어로 작성된 네이티브 코드를 위한 메모리 영역
728x90
반응형
LIST

'일상 > TIL' 카테고리의 다른 글

07.20 학습내용  (0) 2023.07.21
07.19 학습 내용  (0) 2023.07.19
WOMEN WHO CODE Seoul  (0) 2023.06.03
알고리즘 CS 공부 - 선형 검색, 이진 검색, 해싱, 이진 검색 트리  (0) 2023.05.30
컴퓨터 프로그래밍 언어  (0) 2023.05.29
728x90
반응형
SMALL

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.


제한사항

  • 2 ≤ num_list의 길이 ≤ 30
  • 1 ≤ num_list의 원소 ≤ 9
  • 1 ≤ n ≤ num_list의 길이

입출력 예

num_list n result

[2, 1, 6] 3 [6]
[5, 2, 1, 7, 5] 2 [2, 1, 7, 5]

입출력 예 설명

입출력 예 #1

  • [2, 1, 6]의 세 번째 원소부터 마지막 원소까지의 모든 원소는 [6]입니다.

입출력 예 #2

  • [5, 2, 1, 7, 5]의 두 번째 원소부터 마지막 원소까지의 모든 원소는 [2, 1, 7, 5]입니다.
  • 1부터 n까지의 정수 중에서 k의 배수인 것들을 찾기 위해 반복문을 이용합니다.
  • k로 나누어 떨어지는 수라면 리스트에 추가합니다.
  • 리스트에 추가한 수들을 answer 배열에 담아 반환
package Lv0;
/*
정수 리스트 num_list와 정수 n이 주어질 때,
 n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
 */
import java.util.Arrays;

public class H181892 {
	public int[] solution(int[] num_list, int n) {
		int[] answer = Arrays.copyOfRange(num_list, n-1, num_list.length);
		return answer;
	}
}

Arrays.copyOfRange 메서드를 사용해 입력받은 리스트에서 **n**번째 원소부터 마지막 원소까지의 모든 원소를 추출한 후, 새로운 배열에 저장하고 반환하도록 구현

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

원소들의 곱과 합  (0) 2023.06.08
배열 만들기1  (0) 2023.06.04
카운트 업  (0) 2023.06.04
카운트 다운  (0) 2023.05.26
글자 지우기  (0) 2023.05.11

+ Recent posts