일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 파이썬
- Java
- ubuntu
- docker
- 프로그래머스
- 알고리즘
- db
- 머신러닝
- 자료구조
- Ai
- programmers
- 쿠버네티스
- 데이터베이스
- github
- Kubernetes
- 코테
- 정처기
- Python
- 자바
- DevOps
- LV 0
- git
- 코딩테스트
- Lv 2
- 우분투
- 리눅스
- Linux
- 깃
- mysql
- 인공지능
Archives
- Today
- Total
Myo-Kyeong Tech Blog
[프로그래머스] Lv.0 글자 지우기 (Python / Java) 본문
728x90
반응형
코딩테스트 연습 - 글자 지우기 | 프로그래머스 스쿨 (programmers.co.kr)
문제 설명
문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
제한 사항
- 1 ≤ indices의 길이 < my_string의 길이 ≤ 100
- my_string은 영소문자로만 이루어져 있습니다
- 0 ≤ indices의 원소 < my_string의 길이
- indices의 원소는 모두 서로 다릅니다.
입출력 예
문제 풀이
[Python]
def solution(my_string, indices):
return ''.join([my_string[i] for i in range(len(my_string)) if i not in indices])
[Java]
HashSet의 contains 메소드는 해시 함수를 이용하여 특정 요소의 존재 여부를 바로 확인할 수 있어 시간 복잡도가 평균적으로 O(1)이므로 특정 인덱스가 indices에 포함되어 있는지를 빠르게 확인할 수 있어 HashSet을 사용하였다.
import java.util.*;
class Solution {
public String solution(String my_string, int[] indices) {
HashSet<Integer> indexSet = new HashSet<>();
for (int index : indices) {
indexSet.add(index);
}
StringBuilder answer = new StringBuilder();
for (int i = 0; i < my_string.length(); i++) {
if(!indexSet.contains(i)) {
answer.append(my_string.charAt(i));
}
}
return answer.toString();
}
}
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.3 정수 삼각형 (Python / Java) (0) | 2023.08.12 |
---|---|
[프로그래머스] Lv.0 겹치는 선분의 길이 (Python) (0) | 2023.07.16 |
[프로그래머스] Lv.3 야근 지수 (Python / Java) (0) | 2023.07.15 |
[프로그래머스] Lv.0 원하는 문자열 찾기 (Python / Java) (0) | 2023.06.27 |
[프로그래머스] Lv.2 괄호 회전하기 (Python / Java) (0) | 2023.06.23 |