본문 바로가기

Algorithm

(402)
[프로그래머스(Java)] 0 떼기 / Integer.toString() , Integer.parseInt() Level. 0 문제 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return 하도록 solution 함수를 완성해 주세요. * 제한사항 - 2 ≤ n_str ≤ 10 - n_str이 "0"으로만 이루어진 경우는 없습니다. 풀이 class Solution { public String solution(String n_str) { return Integer.toString(Integer.parseInt(n_str)); } } 0이 들어간 문자열을 숫자로 바꾼 뒤 다시 문자열로 바뀌면 맨 앞에 들어간 0을 없앨 수 있다. Java의 숫자를 문자열로, 문자열을 숫자로 바꾸는 방법 Int -> String Integer.toString : null..
[프로그래머스(Java)] 접미사 배열 / substring Level. 0 문제 어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다. 문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - my_string은 알파벳 소문자로만 이루어져 있습니다. - 1 ≤ my_string의 길이 ≤ 100 풀이1 import java.util.Arrays; class Solution { public String[] solution(String my_string) { String[] answer..
[프로그래머스] 연속된 부분 수열의 합 / 투포인터 알고리즘 Level. 2 문제 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다. 수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다. * 제한사항 - 5 ≤ sequenc..
[프로그래머스] 삼각 달팽이 Level. 2 문제 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 1,000 이하입니다. 풀이 #include #include #include using namespace std; vector solution(int n) { vector answer; int arr[n][n]; int r = n; int x = 0, y = 0; int count = 1; while(r > 0){ for(int i=0; i
[프로그래머스(Java)] 특별한 이차원 배열 1 / toArray(int[][]::new) Level. 0 문제 정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요. arr[i][j] (0 ≤ i, j j==i?1:0).toArray()) .toArray(int[][]::new); } } https://school.programmers.co.kr/learn/courses/30/lessons/181833 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr
[프로그래머스(Java)] 문자열 바꿔서 찾기 / replaceAll Level. 0 문제 문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요. * 제한사항 - 1 ≤ myString의 길이 ≤ 100 - 1 ≤ pat의 길이 ≤ 10 myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다. 풀이. 1 import java.util.Arrays; import java.util.stream.*; class Solution { public int solution(String myString, String pat) { for(int i=0; i i.equa..
[프로그래머스(Java)] A 강조하기 Level. 0 문제 문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요. * 제한사항 - 1 ≤ myString의 길이 ≤ 20 - myString은 알파벳으로 이루어진 문자열입니다. 풀이1. replaceAll() import java.util.Arrays; import java.util.stream.*; class Solution { public String solution(String myString) { myString = myString.toLowerCase(); myString = myString.replaceAll("a",..
[프로그래머스(Java)] 5명씩 Level. 0 문제 최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다. * 제한사항 - 5 ≤ names의 길이 ≤ 30 - 1 ≤ names의 원소의 길이 ≤ 10 - names의 원소는 영어 알파벳 소문자로만 이루어져 있습니다. 풀이1. forloop import java.util.Arrays; import java.util.stream.*; class Solution { public String[] solution(Str..