step 1. 문제 설명 딱 이문제를 보자마자, 이런저런 조건을 주는 if문을 사용해서 풀면 되겠다 라고 저는 생각해봤지만 풀다보닌까, 굳이 if문을 주지않고도 풀 수 있겠다 라는 생각이 들었습니다. 그 방법은 그냥 처음부터 변수 값을 초기화시켜두고 그에 맞춰 입력값에 더하기 빼기 형식으로 해주면은 간단하게 끝나는 것 이였습니다. 1) 변수선언 2) 입력 3) 출력 (println이 아닌 직접 " " 를 통해 띄어 쓰기를 해줘야함) step 2. 코드구현 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int king = 1; int..
알고리즘

step 1. 문제 설명 저는 자신감 있게 바로 풀었다고 2,3번 해봤는데 왜 자꾸 실패가 나오는지 알지 못했습니다. 그리고 왜 정답률이 50%인줄 깨달았습니다 당연하게 int,long타입을 변수 A,B를 만들어 입력받은 후 출력하는 문제라고 생각했지만 그게 아니었습니다. 최대 10진수로 1000자리를 넘을 수 있다는 조건이 있으므로, int나long타입을 범위를 넘어가는 수가 입력될 수 있기 때문에 BigInteger 클래스를 사용해서 풀어야 합니다. 그리고 BigInteger에 있는 메서드인 add(더하기), subtract(빼기) , multiply(곱하기) 를 사용해서 풀 수 있습니다. step 2. 코드 구현하기 import java.io.BufferedReader; import java.io...

이전글 : 2023.07.27 - [알고리즘(Java)/백준] - [Java]백준11720_숫자의 합 구하기 백준1546_평균구하기 step 1. 문제 분석하기 - 예제입력에서 3 -> 시험을 본 과목의 개수 / 40 80 60 -> 각 과목의 시험 성적 - 평균구하기 (M=최대수) (입력값a+b+c)*100 / M / 3 ->평균 step 2. 손으로 써가면서 풀어보기 step 3. 슈도코드 작성하기 1) 변수 N에 과목의 수 입력받기 2) 길이가 N인 1차원 배열 A[] 선언하기 3) for문으로 A[] 길이만큼 반복하기 { A[i]에 각 점수 저장하기 } 4) for(A[] 길이 만큼 반복하기) { 최고점은 변수 max에 , 총점은 변수 sum에 저장하기 - > 공식 = sum*100 / max /..

1) 문제설명 2) 문제해결class Solution { public String solution(String str1, String str2) { String answer =""; for (int i = 0; i 0) 메인을 생성하지 않고 코드를 짯습니다.1) String타입을 solution 클래스를만들고 파라미터 String타입을 str1, str2을 만들었습니다.2) 입력받을 answer을 빈 문자열로 초기화를 해둡니다 3) for문을 돌려서, str1문자열을 길이만큼 돌게 만듭니다. 3-1) str1 = "aaaaa" , str2="bbbbb" 파라미터 값을 줬다고 가정합니다. 4) i=0일때 for문을 진행시키면 4-1) answer = answer +..

1) 문제설명2) 해결방법맨 처음에 이문제를 무슨 말인지 이해하기 까지 조금 시간이 걸렸습니다. 문제가 길고 뭔가가 복잡해보여서 문제만 3,4,번 읽어보았습니다. 기본적으로 이 문제를 풀기 위해서는 저는 subString() 메서드를 알아야한다고 생각했습니다. subString() => 문자열을 특정 부분을 잘라주는 함수이다출력할때도 subString(2,4) -> 인덱스2,3부분을 출력해주거나, 중간 문자를 교체 할 수 있습니다.class Solution { public String solution(String my_string, String overwrite_string, int s) { //my_string -> 기존 문자열 , overwrite_string -> my_string에서 ..

1) 문제설명2) 해결방법프로그래머스_문자열 돌리기 문제를 풀어보았습니다.저는 문제를 풀면서 for문 및 charAt() 함수를 사용하였습니다.charAt() 함수는 String 문자를 Char 타입으로 바꿔주어1글자씩 출력해야할때 쓰는 함수 입니다.ex)String str = "abcde";System.out.println(str.charAt(0));-->출력결과 a가 나옵니다.이걸 응용해서 문제를 풀 수있습니다.import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next()..

1) 문제설명2) 해결방법이 프로그래머스 문제를 풀어 보았습니다.이 문제를 풀기 위해선 기본적인 자바 함수를 알고 있어야 합니다.기본 함수 종류는1) charAt() -> String을 -> Char로 변환 - > 이는 현재 문자열에서 특정 인덱스에 위치한 문자를 반환하는 것 입니다.2) toUpperCase() -> 소문자 -> 대문자로 변환3) UpperCase() -> 대문자 -> 소문자로 변환import java.util.Scanner;public class Solution { public static void main(String[] args) { //Scanner 입력 받음. Scanner sc = new Scanner(System.in); // 입력..

알고리즘 문제를 풀다보면 가끔 재귀함수 문제를 만나게 됩니다. 제 경험상 대부분을 재귀함수 문제들은 대부분 팩토리얼 관련된 문제로 접하였습니다. 재귀함수는 함수가 자기 자신을 호출하는 방법으로 동작을 합니다. 간단한 예제를 통해서 알아보도록 하겠습니다. 1) 아래 예제가 간단한 팩토리얼 예제 입니다. // 팩토리얼(재귀함수) 알고리즘 public class RecursiveFactorial { public static int factorial(int n) { //메인에있는 파라미터5를 입력 받음 //재귀함수 알고리즘 if (n 1 return) 이런식으로 생각을 하면 편할 것 같습니다