본문 바로가기

문자열81

[자바] 백준 6581 - HTML (boj java) 문제 : boj6581 결국엔 문제에서 제시된대로 구현하면 되긴..하는데.. 좀 까다롭긴하다. 그래도 뭐 해설을 할 부분은 딱히 없는 것 같다. 문제의 조건대로 구현만 하면 되긴하니. 특히 주의할 점이라면 각 줄의 끝에 공백문자가 있으면 안된다. 즉, 'abc ' 이러면 안되고 'abc' 이래야 한다. 이것 때문에 좀 헤맸다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { int idx = 0; StringBuilder sb = new StringBuilder(); pr.. 2022. 7. 14.
[ABC259] C - XX to XXX (AtCoder Beginner Contest 259 in Java) 문제 : abc259_c 내 경우엔 String을 다음과 같이 압축시켜서 판단했다. abbaac => a1 b2 a2 c1 abbbbaaac => a1 b4 a3 c1 위와 같이 압축시킬 경우, 다음과 같이 판단할 수 있다. 1. 압축시킨 갯수가 다를 경우 No (예를들어 a1 b2 c2 vs a1 b2 였다면 3개와 2개로 비교해볼 것도 없이 No 이다.) 2. 압축시킨 부분에서 문자 부분이 서로 다른 경우 No (예를들어 a1 b1 c1 vs a1 d1 c1) 3. 압축시킨 각 부분에서 숫자가 S를 압축시킨쪽이 더 큰 경우 No (예를들어 a2 vs a1) 4. 압축시킨 각 부분에서 숫자가 서로 다른데, S가 1인 경우 No (예를들어 a1 vs a2) 5. 이외의 경우 Yes 코드 : github .. 2022. 7. 11.
[자바] 백준 11101 - 꿍의 여친 만들기 (boj java) 문제 : boj11101 문자열 파싱문제이다. 로직을 다음과 같이 나눠보자. 설명은 이하의 예제 입력 1의 테스트케이스 2를 기준으로 하겠다. 1 ab:13,b:17,cab:21 ab&b|b&cab 1. 각 테스트케이스의 첫줄을 받아 문자열을 key, 시간을 value로 하는 Map 형태로 만든다. -> ':'와 ','을 기준으로 StringTokenizer로 문자열을 나누게 되면 ab, 13, b, 17, cab, 21이 순서대로 들어가 있게될 것이다. 따라서 순서대로 {ab:13, b:17, cab:21}의 Map 형태로 만들어줄 수 있다. 이후 맵에서 쉽게 "ab"의 시간을 알 수 있다. 2. 각 테스트케이스의 둘째줄을 받아 '|' 을 기준으로 나눈다. -> 'ab&b'와 'b&cab'로 나뉠 것이.. 2022. 6. 30.
[자바] 백준 14625 - 냉동식품 (boj java) 문제 : boj14625 시작시간부터 종료시간까지 각 분마다 어떠한 숫자들이 표시될지만 잘 판단할 수 있다면 풀 수 있다. 함수를 나눠보자. 필요한건 결국 1. 시작시간부터 시작해서 종료시간까지 1분씩 잘 더해줄 수 있는 함수 2. '1'의 각 시간에서 N이 포함되어 있는지 판단해주는 함수 위의 두 개만 있으면 된다. 문자로 해도 상관없지만, 내 경우엔 숫자로 처리했다. '1'에 해당하는 부분이 plusMin, '2'에 해당하는게 canSee 이다. 찾는 방법은 코드를 참고해보자. 주의점은 HHMM 형태이므로, int로 나타냈을 때 1000이하의 수라면, 예를들어서 5시 34분이라면 534라고 표현될 것이다. 실제론 맨 앞에 0이 있다고 봐야 하므로 N이 0일 경우 1000 이하의 수라면 0이 항상 존재.. 2022. 6. 25.
[자바, C#] 백준 1225 - 이상한 곱셈 (boj java csharp) 문제 : boj1225 우선 최악의 경우는 99999....9(10000자리) 라는 수가 두개 있는 경우이다. 이 때 총 합은 9x9x10000x10000으로 81억이 되므로, 계산의 결과는 int로 표현할 수 없음을 알 수 있다. 따라서 결과 표현은 long으로 해줘야 한다. 또한 입력으로 들어온 A와 B는 10000자리까지 가능하므로 long으로도 당연히 표현이 불가하다. 어차피 각 자리의 수만 알면 되므로 String으로 입력받으면 문제 없다. 즉, A와 B를 String으로 입력받은 뒤 각 자리의 가능한 모든 조합에 대해 character를 숫자로 변환해 곱해서 결과에 더해주는 과정을 코드로 옮겨주면 된다. 예를들어 A=abc, B=de라면(e.g. A가 211 이라면 a=2, b=1, c=1) .. 2022. 6. 21.
[자바] 백준 5656 - 비교 연산자 (boj java) 문제 : boj5656 입력으로 들어온 문자열을 공백을 기준으로 int, String, int로 파싱한다. 중간의 String 부분이 'E' 라면 끝내면 된다. 이외의 경우 중앙의 String 부분에 따라 똑같은 비교연산자를 수행해주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { private boolean getResult(int a, int b, String op) { switch (op) { case ">": return a>b; case ">=": return a>=b; case " 2022. 6. 18.
[자바] 백준 5704 - 팬그램 (boj java) 문제 : boj5704 각 문자마다 a~z가 모두 있는지 확인하면 된다. 'a'~'z'는 0~25로 표현 가능하므로 26칸짜리 배열 arr에 각 소문자가 나온 횟수를 세보자. 그럼 arr[i]가 1이 되는 경우, 해당 문자가 존재하는게 된다. 따라서 별도로 cnt라는 변수를 둬서 arr[i]가 1이 되는 경우 증가시킨다. 최종적으로 cnt가 26이라면 모든 문자가 있는 것이고, 아니라면 뭔가 빠진 문자가 있는 셈이다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class Main { private void solution() throws Except.. 2022. 6. 17.
[자바] 백준 5789 - 한다 안한다 (boj java) 문제 : boj5789 짝수개수의 문자가 들어오므로, 입력이 어떻게 들어오던지 상관없이 중앙의 두 문자만 확인하면 된다. 입력으로 들어온 문자열의 길이를 기준으로 중앙의 두 글자를 비교해서 답을 출력해주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new S.. 2022. 6. 12.
[자바] 백준 15881 - Pen Pineapple Apple Pen (boj java) 문제 : boj15881 아무튼 'pPAp'의 개수만 세면 되는 문제이다. 겹칠여지도 없으니 문자열만 잘 찾아주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private static final String PPAP = "pPAp"; private void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String s = br.readLine(); int cn.. 2022. 5. 30.
[자바] 백준 12780 - 원피스 (boj java) 문제 : boj12780 H에서 N이 몇 번 나오면 되는지 확인하면 된다. 이 때 명확하지 않은 점이 예를들어 아래와 같은 경우, 2번이 답이 될지 3번이 답이 될지였다. 애초에 문제로 파악할 수 없었으므로 그냥 제출해보고 틀리면 변경하려 했다. 결론은 후자가 맞았다. AAAA AA 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String a = .. 2022. 5. 29.