본문 바로가기

Java/알고리즘38

[프로그래머스/알고리즘] 없는 숫자 더하기 (자바/Java) 문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 입출력 예 #1 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 #2 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다. Step1. 문제분석 내가 생각한 문제의 풀이는 어차피 어떤 수가 뽑아졌는지 그런게 아닌 수의 합만 찾으면 된다고 했고 수가 정해져.. 2022. 11. 18.
[프로그래머스/알고리즘] 문자열을 정수로 바꾸기 (자바/Java) 이 문제 같은 경우는 [Java]Integer.parseInt란 ? Integer.parseInt란 ? String을 Int형으로 바꾸는 함수 Integer.parseInt() 입니다. 문자열을 숫자로 변환시킴 pareseInt 함수는 Integer 클래스의 static 함수 public class JavaPractice { public static void main(String[] args) { Stri jkadv.tistory.com 문자열을 정수로 바꾸는 Integer.parseInt를 아느냐, 모르느냐, 알면 어떻게 쓰느냐 이정도의 문제인것같다. 문제 설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 .. 2022. 11. 18.
[프로그래머스/알고리즘] 두 정수 사이의 합 (자바/Java) 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. Step1. 문제분석 만약 3,5를 입력할 경우 3+4+5인 12값이, 그게 아닌 반대로 5,3을 입력해도 3+4+5인 12값이 출력된다. a의 값이 클지 b의 값이 클지는 모른다. 그렇다면 if문을 통해 a의 값이 클경우, 그게 아닐 경우 같은경우는 그냥 그 값만 리턴하면 되니 상관없을 거라고 생각했다.. 2022. 11. 18.
[프로그래머스/알고리즘] 가운데 글자 가져오기 (자바/Java) 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. Step1. 문제분석 문제는 이해를 했다. abcde 홀수 qwer 짝수 그중 홀수는 가운데 글자만, 짝수는 그 가운데에 2글자를 index가 0,1,2,3 이런식이면 1,2를 0,1,2,3,4,5,6,7 이런식이면 3,4를 가져오면 되는 것이였다. 이는 /2를 하고 거기서 -1을 하고 해서 2개를 가져오면 된다고 생각했다. 그래서 우선 홀수와 짝수를 구분짓기 위해 if (s.length() % 2 == 0){ 짝수 }else{ 홀수 } 이런식으로 나누었다. 그 후 짝수에서 나와야 하는 값 answer +.. 2022. 11. 18.
[프로그래머스/알고리즘] 짝수와 홀수 (자바/Java) 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. Step1. 문제분석 생각해보면 너무 쉬웠다. 나누기 2를 해서 나머지 값이 0이면 짝수 1이면 홀수 끝 아닌가 ? 그대로 문제를 풀어봤다. 프로그래머스에 있는 이 부분도 참고해서 풀었다. Step2. 문제풀이 코드 class Solution { public String solution(int num) { if (num % 2 == 0) { return ("Even"); } else { return ("Odd"); } } } 정수 num 값을 입력 받고 그 값을 2로 나눠서 0이 된다면 짝수 그 값이 아니라면.. 2022. 11. 18.
[프로그래머스/알고리즘] 직사각형 별찍기 (자바/Java) 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수입니다. Step1. 문제분석 우선 출력대로 만드는 것에는 문제가 없었다. 하지만 입력을 받고 그 값을 만드는 것에 대한 고민이 있었다. 일반적으로 가로5 세로3의 직사각형 별찍기를 하려면 for(int i = 0; i < 3 ; i++){ for(int j = 0; j < 5; j++){ System.out.print('*'); } System.out.print('\n'); //System.out.println(' '); 으로도 가능 } 이렇게 하면 된다. 하지만 여기서 입력값을 받는대로 .. 2022. 11. 18.
[백준/알고리즘] 11660 - 구간 합 구하기5 (자바/Java) 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. 입력 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 .. 2022. 11. 12.
[백준/알고리즘] 11659 - 구간 합 구하기4 (자바/Java) 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 합 배열 공식 S[i] = S[i-1] + A[i] 인덱스 1 2 3 4 5 배열 A 5 4 3 2 1 합 배열 S 5 9 12 14 15 합 배열 S[인덱스1] = S [인덱스1-1 = 0] + 5[인덱스1] - 5의 값이.. 2022. 11. 11.
[백준/알고리즘] 1001 - A-B 값 구하기 (자바/Java) 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A-B를 출력한다. Step1. 문제 분석 2개의 값이 들어간다. A와 B 그리고 (0 < A, B < 10) 값을 설정 그 후 A -B 값을 입력받아 출력하면 된다. Step2. 문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); while(A = 10 || B = 10) { System.. 2022. 11. 8.