[백준] 2557 - Hello World
알고리즘/백준2023. 10. 10. 01:20[백준] 2557 - Hello World

시작하기에 앞서서 이전에 8월부터 스스로 자기개발을 위한 블로그를 작성해왔지만, 10월에 있을 정보처리기사 실기시험을 준비하다보니 블로그를 신경쓰지 못하였다. 실기시험을 마치고나서(실기결과는 11.15에 나오지만 가채점을 통한 예상 결과는 합격이다) 블로그를 처음부터 다시 살펴보니 코딩 문제를 푸는데에만 중점을 두고 블로그에는 단순히 코드만 복붙하고 설명만 대충 급급하게 적어놓은듯한 느낌을 받았다. 즉, 나의 궁극적인 목적인 블로깅을 통해 복기하면서 다시 한번 생각해보는 과정을 거치지않다보니 문제의 매커니즘을 정확히 이해하지 못 한듯 하였다. 그 결과 문제를 다시 풀어보는데도 익숙하지않고 처음 풀어보는듯한 느낌을 받았다. 따라서 백준문제의 가장 처음인 Hello World부터 차근차근 구글링해가며 섬세하..

알고리즘/백준2023. 8. 22. 16:071152 - 단어의 개수

공백을 기준으로 단어를 나누어 count한다. 주의할 점은 입력2와 같이 단어 앞에 공백이 들어와있을 경우 count되면 안되기때문에 예외를 생각하고 처리해야한다. System.in.read()는 입력된 값의 아스키 코드를 가져온다. 예를 들어 str에 4가 입력되면 52를 가져온다. 로직에는 2가지 조건문이 있는데 첫번째로는 공백을 만났을 때이다. 이 때는 str의값이 32이고, 단어 앞 공백을 의미하는 pre_str이 32가 아니라면 count++를 해준다. (여기서 32는 아스키코드로 공백(스페이스바)을 뜻한다.) 두번째 조건문은 str이 10 즉, Enter를 만났을 때 역시 pre_str이 32가 아니라면 count++를 해준다. package boj; import java.io.IOExcept..

알고리즘/백준2023. 8. 22. 15:332675 - 문자열 반복

입력된 테스트 케이스 T만큼 반복하고 반복횟수는 R만큼, 문자열은 S로 입력받아 공백으로 구분한다. charAt()메서드를 R만큼 출력해주면 되는 간단한 문제이다. package boj; import java.util.Scanner; public class b2675 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i=0; i

알고리즘/백준2023. 8. 19. 12:3910809 - 알파벳 찾기

알파벳은 26개로 구성되어있다. 따라서 a,b,c .... z까지의 알파벳을 의미해주는 배열 arr를 선언해준다. 이 배열은 말그대로 알파벳의 위치만을 알려주는 배열이므로 int타입으로 선언해준다. 배열에 각 인덱스에 입력된 알파벳이 단어에 포함되어있지 않다면 -1을 출력해야하므로 모든 인덱스를 -1로 초기화해준다. char타입의 cArr배열을 생성해주는데, cArr배열은 입력된 단어(S)의 알파벳들만을 필요로 하기때문에 S.toCharArray()해준다. 로직을 구현하기전에 알아야 할 점은 baekjoon과 같이 oo가 겹치는 부분이 입력될 수 도있다는 점을 생각해야한다. 그렇기때문에 if(arr[cArr[i]-97] == -1) 조건문을 붙힌것이다. for문 로컬변수 i = 0이라는 가정하에 식을 풀..

알고리즘/백준2023. 8. 19. 12:0911720 - 숫자의 합

N은 문자의 N번째까지 더해준다는 의미의 변수이다. ex) N = 4, str = 54321 sum = 14 (5+4+3+2) 숫자형태의 문자열을 각각을 정수화해서 sum에 누적합을 해주어야한다. sum+=str.charAt(i) - '0' char타입의 숫자문자에서 - '0'을 해주면 해당하는 숫자를 정수형으로 얻을 수 있다. package boj; import java.util.Scanner; public class b11720 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); String str = sc.next(); int sum = 0; for(int i=0; i

알고리즘/백준2023. 8. 19. 12:0011654 - 아스키코드

해당 문자의 아스키코드값을 얻고 싶다면 해당 아스키코드에서 - 0 을빼주면 연산결과는 정수로 나오기때문에 아스키코드값이 출력된다. package boj; import java.util.Scanner; public class b11654 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); char ch = str.charAt(0); System.out.println(ch-0); } }

알고리즘/백준2023. 8. 19. 11:549086 - 문자열

변수 str에 문자열을 입력받고 charAt(n)으로 문자열의 n번째 문자를 반환해낸다. 문제에서 문자열의 첫 글자와 마지막 글자를 출력하라했으므로 charAt(0)와 charAt(length()-1)을 출력한다. package boj; import java.util.Scanner; public class b9086 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i=0; i

알고리즘/백준2023. 8. 19. 11:442743 - 단어길이 재기

length()메서드를 통해 문자열의 길이를 출력한다. package boj; import java.util.Scanner; public class b2743 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); System.out.println(str.length()); } }

image