Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 99일지
- BFS
- 문자열
- SSAFY수료식
- 99클럽
- 개발자스터디
- java
- 싸피
- 브루트포스
- 백준
- 알고리즘
- python
- 깊이우선탐색
- DP
- til
- 자바
- 항해
- 너비우선탐색
- 프로그래머스
- 삼성청년SW아카데미
- 다이나믹프로그래밍
- 구현
- 백트래킹
- 위상정렬
- dfs
- ssafy
- BOJ
- 코딩테스트
- 파이썬
- programmers
Archives
- Today
- Total
EunJng
[PRO] 둘만의 암호 | Java 본문
문제
프로그래머스 코딩테스트 연습 > 연습문제 > 둘만의 암호 | Lv.1
https://school.programmers.co.kr/learn/courses/30/lessons/155652
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
자바 풀이
import java.util.*;
class Solution {
public String solution(String s, String skip, int index) {
String answer = "";
for(int i=0; i<s.length(); i++) {
char ch = s.charAt(i);
int cnt = 0;
while(cnt < index) {
ch++;
// z 넘어가면 a로 돌아가기 위해 26 빼줌
if(ch > 'z') {
ch -= 26;
}
// ch가 skip에 있으면 cnt 증가x
// contains 사용을 위해 ch를 String으로 변경
if(skip.contains(Character.toString(ch))) {
continue;
}
cnt++;
}
answer += ch;
}
return answer;
}
}
- s의 한 글자씩 증가 횟수가 index가 될 때까지 1씩 증가하였고, 만약 skip에 포함되면 cnt를 증가시키지 않았다.
또한 z를 넘어가면 26을 빼서 a로 돌아가도록 하였는데, index가 20이하이기 때문에 두 바퀴 이상 돌지 않아 %를 사용하지 않고 단순하게 빼기로만 처리하였다.
'PROBLEM > PROGRAMMERS' 카테고리의 다른 글
[PRO] 가장 먼 노드 | Java | Python (1) | 2023.11.25 |
---|---|
[PRO] 큰 수 만들기 | Java (0) | 2023.06.21 |
[PRO] 택배 배달과 수거하기 | Python | Java (0) | 2023.06.18 |
[PRO] 하노이의 탑 | Java (0) | 2023.06.15 |
[PRO] 숫자 게임 | Java | Python (0) | 2023.06.14 |