반응형
문제분석
문제 설명대로 풀어주면된다.
딱히 효율성도 중요하지않아서 정말 하고싶은대로 풀기만하면 된다.
각 문자를 index마다 밀고, 만약 z를 넘으면 다시 돌아오고 , skip해야할 문자는 넘어주는 로직을 작성하자.
일단, 스킵과 문자열을 char형태로 모두 쪼개고, skip은 맵에저장한다.
skip문자열의 확인을 map.containsKey로 확인할것이다.
스킵과 'z'를 넘어서는 조건을 입력했다.
z를넘어가면 알파벳 갯수 (26개)만큼 빼주고,
스킵이되는 알파벳이면 for문의 i를 하나빼준다. i를 하나 빼주면 다시 계산하는 형태가된다.
전체풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import java.util.*;
class Solution {
public String solution(String s, String skip, int index) {
String answer = "";
char[] sk = skip.toCharArray();
char[] arr = s.toCharArray();
Map<Character,Integer> map = new HashMap<>();
for(char r : sk){
map.put(r,0);
}
for(char a : arr){
int count=0;
for(int i=0;i<index;i++){
count++;
if((char)(a+count)>'z'){
count-=26;
}
if(map.containsKey((char)(a+count))){
i--;
}
}
answer+=(char)(a+count);
}
return answer;
}
}
|
cs |
반응형
'알고리즘 > 프로그래머스 Level1' 카테고리의 다른 글
[PCCP 기출문제] 붕대 감기 (0) | 2024.01.21 |
---|---|
[프로그래머스, java] Level1: 카드뭉치 (0) | 2023.02.17 |
[프로그래머스, Java] Level1: 개인정보 수집 유효기간 (1) | 2023.01.06 |
[프로그래머스,Java] Level1: 햄버거 만들기 (0) | 2022.12.11 |
[프로그래머스, Java] Level0: 겹치는 선분의 길이 (0) | 2022.12.08 |