목록문자열 (48)
기록방
👉 문제링크 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 🔸 문제 분석 🔸 기본 문자열과 폭발 문자열이 입력된다. 기본 문자열에서 폭발 문자열 부분이 폭발하며 지워지고, 남은 문자열은 다시 이어 붙는다. 더 폭발할 문자열이 남지 않았을 상태의 문자열을 출력한다. 남은 문자가 없으면 "FRULA"를 출력한다. 🔸 문제 풀이 🔸 문자열의 길이가 100만이기 때문에 O(n^2) 미만의 알고리즘을 사용해야 한다. 반복문 한 번에 계산할 수 있도록 한다. 새로운 문자열이 생기면 메모리 문제가 생길 수..
👉 문제링크 1235번: 학생 번호 첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부 www.acmicpc.net 🔸 문제 분석 🔸 학생번호를 중복되지 않도록 가장 짧게 만들 수 있는 길이를 출력한다. 번호를 줄일때는 왼쪽수 부터 버린다. 🔸 문제 풀이 🔸 학생 번호 문자열의 끝 부분에서 하나씩 길이를 늘려가며 중복되는 문자열이 있는지 확인해야한다. 끝 부분에 있으면 접근이 어려울 것 같아 문자열을 뒤집어서 저장 후 중복을 확인했다. 중복확인을 위해 문자열을 1부터 N-1까지 잘라가며 Set에 넣고 확인했다. 🔸 코드 🔸 import java.io.Bu..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 문자열 s의 각 자리 문자들을 index만큼 뒤 알파벳으로 바꾼다. z가 넘으면 다시 a부터 미룬다. skip에 포함 된 문자는 세지 않는다. 결과를 출력한다 🔸 코드 🔸 class Solution { public String solution(String s, String skip, int index) { String answer = ""; for(int i = 0; i < s.length(); i++) { int now = s.charAt(i) - 'a'; for(int j =..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 문자열 S가 입력된다. 첫 문자부터 카운트해서 첫 문자들의 수와 그 외의 문자들의 수가 같아질 때 까지 잘라낸다. 잘라진 문자열의 수를 출력한다. 🔸 코드 🔸 class Solution { public int solution(String s) { int answer = 0; int size = s.length(); int idx = 0; while(idx < size) { char c = s.charAt(idx); int a = 1; int b = 0; while(++idx < ..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 입력으로 주어진 숫자 배열의 원소를 최대한 사용해서 좌우대칭을 만든다. 🔸 코드 🔸 class Solution { public String solution(int[] food) { StringBuilder sb = new StringBuilder(); for(int i = 1; i < food.length; i++) { for(int j = 0; j < food[i]/2; j++) { sb.append(i); } } StringBuilder answer = new StringBu..