본문 바로가기

파싱15

[자바] 백준 29730 - 임스의 데일리 인증 스터디 (java) 목차 문제 : boj29730 필요 알고리즘 문자열, 파싱, 정렬 문자열을 파싱할 줄 알고, 원하는 방식으로 정렬할 수 있어야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제를 풀기위해 해결해야 하는건 다음과 같다. 내 경우엔 이하의 코드처럼 해결했다. 1. 'boj.kr/문제 번호' 형태를 판단할 수 있어야 한다. 이 때 '문제 번호'는 정수여야하고 1부터 30000의 범위여야 한다. 테스트 케이스는 모르지만.. 2023. 11. 21.
[자바] 백준 26059 - Вендомат (java) 문제 : boj26059 필요 알고리즘 개념 구현, 파싱, 문자열 일단 문제가 이해가 됬다면 문자열 파싱을 통해 제시된 대로 구현해주면 된다. 눈치 및 번역(?) 번역기만 돌려선 좀 이해하기 힘든 문제이다. 눈치(?)가 좀 있어야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 자세한 번역을 쓰고싶진 않으니(나도 모르겠음), 그냥 결론적으로 어떻게 푸는지만 이해되도록 작성하겠다. 입력은 이하와 같이 들어온다고 하자. N.. 2022. 11. 26.
[자바] 백준 13985 - Equality (java) 문제 : boj13985 필요 알고리즘 개념 문자열 파싱 문자열 파싱 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 A + B = C 형태의 입력에서, A, B, C를 뽑아낼 수 있다면 풀 수 있다. 심지어 1개의 문자로만 각 숫자가 주어진다고 했으므로 어려울게 없다. character 자체로 판단해도 되고, 어차피 공백으로 구분되어 있으므로 공백을 기준으로 잘라줘도 된다. 코드 : github import jav.. 2022. 11. 7.
[자바] 백준 10822 - 더하기 (java) 문제 : boj10822 필요 알고리즘 개념 문자열, 파싱, 구현 문자열을 일정한 규칙대로 파싱해서 원하는 데이터를 얻을 수 있다면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 "10,20,30,50,100" 형태로 ','를 기준으로 작성되어있는 각 숫자들을 파싱해서 뽑아낼 수 있으면 모두 더해버리면 된다. 자바의 경우 String에 대해 split 함수로 파싱해도 되고, StringTokenizer로 파싱해.. 2022. 10. 28.
[자바] 백준 9324 - 진짜 메시지 (java) 문제 : boj9324 필요 알고리즘 개념 문자열, 파싱, 구현 입력으로 주어진 문자열을 파싱하면서 문제에서 제시된대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에서 제시된걸 구현하기 위해 필요한 항목은 다음과 같다. 1. 현재 문자열의 i번째 문자를 보고있을 때, 현재까지 i번째 문자와 동일한 문자가 이전에 몇 번 나왔는지 알 수 있어야 한다. -> 대문자만 입력으로 들어오므로, A부터 Z까지 2.. 2022. 9. 29.
[자바, JS] 프로그래머스 - 영어 끝말잇기 (Lv2, Java, JavaScript) 문제 : Programmers-영어 끝말잇기 문제 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 필요 알고리즘 개념 Set 해시셋을 사용해 이전에 나온 문자열이 중복으로 나왔는지 확인할 수 있어야 한다. 문자열, 파싱 문자열의 첫 문자와 마지막 문자를 확인할 수 있어야 한다. 문제에서 찾고자 하는 종료 조건은 아래의 두 가지 이다. 1. 이전에 나온 단어가 다시 나오는지 2. 직전에 나온 단어의 마지막 문자(character)가 이번에 보고 있는 단어의 첫번째 문자와 동일한지 '1'의 경우엔 Set을 사용해 중복 체크를 할 수 있다. 자바의 경우엔 HashSet을 사용하면 되고, js의 경우엔 Set을 사용해주면 된다. '2'의 경우엔.. 2022. 9. 23.
[자바] 백준 1706 - 크로스워드 (java) 문제 : boj1706 필요 알고리즘 개념 문자열, 파싱 문자열을 파싱해서 원하는 형태로 사용할 수 있어야 한다. 구현 문제에서 제시된대로 구현만 해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 문제를 잘 파악해보자. 가로나 세로로 1개 초과로 연속된 문자열을 모두 뽑아낼 수 있다면, 그 중 가장 사전순으로 앞서는 문자를 출력해주면 된다. 위에서 "good" "an" "messy" ... "sit" "byt.. 2022. 9. 21.
[자바] 백준 21508 - Список школ (java) 문제 : boj21508 타 언어 문제이므로 한글로 문제의 핵심 조건만 작성해본다. 1. 첫 줄에 이하 몇줄이 입력으로 들어올지에 대한 N이 주어진다. 2. 입력은 공백, 영어 대소문자, 숫자로 이루어져 있는데, 이 중 숫자만 뽑아낸게 학교 번호이다. 즉, "A41B"와 "41 AB"는 동일한 학교를 나타낸다. 3. 학교 번호 기준으로 각 학교가 몇 명 참가했는지 확인해서, 1명이상 5명이하가 참여한 학교의 학교 번호를 출력한다. 순서는 상관없다. 필요 알고리즘 개념 해시를 사용한 집합과 맵 해시가 필요하다. 숫자로 처리되므로 그냥 배열같은걸로 처리해도 되지 않나 싶겠지만, 문제 어디에도 숫자가 몇 이하임이 제시되지 않았다. 따라서 문자열 길이가 100까지 가능하므로 100자리 숫자까지 판단해야 된다고 .. 2022. 9. 17.
[자바] 백준 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.
[자바] 백준 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.