본문 바로가기

728x90
반응형

Major-

(863)
[Ch.01 - String] 04. 단어 뒤집기 # (+StringBuilder) 4. 단어 뒤집기 설명 N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요. 입력 첫 줄에 자연수 N(3
[Ch.01 - String] 03. 문장 속 단어 # (+ split) 3. 문장 속 단어 설명 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요. 문장속의 각 단어는 공백으로 구분됩니다. 입력 첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다. 예시 입력 1 it is time to study 예시 출력 1 study import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); String str..
[Ch.01 - String] 02. 대소문자 변환 (+ toCharArray) 2. 대소문자 변환 설명 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요. 입력 첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다. 예시 입력 1 StuDY 예시 출력 1 sTUdy import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); String str=in.next(); char[] arr= str.toCharArray()..
[Ch.01 - String] 01. 문자 찾기 (+ toCharArray) 1. 문자 찾기 설명 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. 대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다. 입력 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다. 문자열은 영어 알파벳으로만 구성되어 있습니다. 출력 첫 줄에 해당 문자의 개수를 출력한다. 예시 입력 1 Computercooler c 예시 출력 1 2 package string.ch01; import java.util.Scanner; public class String01_1 { public static void main(String[] args){ Scanner kb=new Scanner(System.in); i..
[Ch.03 - 투 포인터] 6. 최대 길이 연속부분수열 ### 6. 최대 길이 연속 부분수열 0과 1로 구성된 길이가 N인 수열에서, 최대 k번 변경가능한데, 0을 1로 변경가능 최대 k번의 변경을 통해 1로만 구성된 최대 길이의 연속부분수열 출력 입력값 14, 2 1 1 0 0 1 1 0 1 1 0 1 1 0 1 출력값 8 1. answer와 sum -> 구간별 연속부분수열 개수를 sum에 저장해 answer와 비교 2. 포인터 1 p1, 포인터2 p2, p2의 개수 p2_n 3. 1로 바꾼 마지막 위치 zero, 현재 세고 있는 위치 count 4. arr2는 arr배열을 복사한 배열로, 매번 리셋 5. while (p2 < n && p2_n < k) if (arr[p2] == 0) 0인 값 1로 바꾸고 if(p2_n==1) 처음 1로 바꾼 위치 기억 else ..
[Ch.03 - 투 포인터] 5. 연속된 자연수의 합 # (+ for-while) 5. 연속된 자연수의 합 양의 정수 N을 2개 이상의 연속된 자연수 합으로 표현하는 가짓수 출력 입력값 15 출력값 3 package twopointer.ch03; import java.util.Scanner; //연속된 자연수의 합 //자연수 N을 2개 이상의 연속된 자연수 합으로 만드는 가지수 M출력 public class Twopointer05 { public int solution(int n) { int answer=0; int p1=1; int p2=2; int sum=0; while(p10) { cnt++; n=n-cnt; if(n%cnt==0) answer++; //원하는 값이 0보다크면 카운트를 하나씩 늘리면서 //카운트를 나눴을때 나머지가 0인경우 결과에 +1한다. //5인경우 n은 4가..
[Ch.03 - 투 포인터] 4. 연속 부분수열 ## 4. 연속 부분수열 연속 부분수열 N개에서 합이 자연수 M이 되는 경우 횟수 구하기 입력값 8 6 1 2 1 3 1 1 1 2 출력값 3 (1) 1. while (p1 m) { // 합계가 m보다 크면 반복 sum -= arr[lt++]; // 합계에서 포인터1의 값을 빼고, 포인터1 +1 if (sum == m) answer++; // 원하는 값이 되면, 결과에 +1 } } return answer; } } 더보기 package twopointer.ch03; impo..
[Ch.03 - 투 포인터] 3. 최대 매출 (+ 슬라이딩 윈도우) 3.최대 매출 N일 동안 매출기록 중 연속 k일 동안 최대 매출액 구하기 입력값 10 3 12 15 11 20 25 10 20 19 13 15 출력값 56 package twopointer.ch03; import java.util.Scanner; //최대 매출 //총 n일 중, 연속 k일간의 최대 매출 class Twopointer03_1 { public int solution(int n, int k, int[] arr) { int sum = 0; int tmp = 0; int p1 = 0; int p2 = 1; while (p1 < n) { tmp = 0; p2 = p1 + 1; tmp = arr[p1]; while (p2 - p1 < k &&p2 < n) { tmp += arr[p2++]; if (p..

728x90
반응형