본문 바로가기

문자열81

[자바] 백준 28109 - 약속 장소 2 (java) 목차문제 : boj28109  필요 알고리즘문자열, 그리디규칙을 찾아 그리디로 해결 가능하다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  규칙만 찾으면 로직은 생각보다 간단하다."CDD" 를 가지고 한 글자만 변경해서 사전순으로 어떻게 나타낼 수 있을지 생각해보자.순서대로 살펴보면 아래와 같다.// 첫번째 글자만 변경됨ADDBDD// 두번째 글자만 변경됨CADCBDCCD// 세번째 글자만 변경됨CCACCBCDC// 자기.. 2024. 4. 25.
[자바] 백준 29730 - 임스의 데일리 인증 스터디 (java) 목차 문제 : boj29730 필요 알고리즘 문자열, 파싱, 정렬 문자열을 파싱할 줄 알고, 원하는 방식으로 정렬할 수 있어야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제를 풀기위해 해결해야 하는건 다음과 같다. 내 경우엔 이하의 코드처럼 해결했다. 1. 'boj.kr/문제 번호' 형태를 판단할 수 있어야 한다. 이 때 '문제 번호'는 정수여야하고 1부터 30000의 범위여야 한다. 테스트 케이스는 모르지만.. 2023. 11. 21.
[자바] 백준 9202 - Boggle (java) 목차 문제 : boj9202 필요 알고리즘 브루트포스, 백트래킹, 그래프 탐색(dfs 혹은 bfs 등), 트리, 트라이(Trie) 원래 플래급 가면 여러가지 섞어야 하는 경우가 많긴하다. 내 경우엔 메인 알고리즘은 트라이였고, 나머진 트라이로 로직 구현을 위한 부가적인 부분이었다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 일단 내 경우엔 트라이로 풀었는데, 의견쪽을 보니 시간이 널널해서 그냥 해싱 처리해도 된다고 한다... 2023. 6. 27.
[ABC301] A - Overall Winner (AtCoder Beginner Contest 301 in Java) 목차 문제 : abc301 - A 필요 알고리즘 구현, 문자열 문제에서 제시된 대로 구현하는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문자열의 각 문자를 읽는방법을 안다면 풀 수 있다. T와 A가 나온 갯수를 세서 더 많은 쪽의 문자를 출력해주면 된다. 다만 갯수가 동일하다면 최대치에 더 먼저 도달한 문자를 출력해줘야 한다. 이 부분은 코드에서 'c' 변수로 처리했다. 코드 : github import jav.. 2023. 5. 13.
[자바] 백준 25206 - 너의 평점은 (java) 목차 문제 : boj25206 필요 알고리즘 구현, 문자열 문자열을 잘 파싱해서 문제에서 제시된대로 구현해주는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 구현 로직은 다음과 같다. 1. 20줄 각각을 받으면서 첫 번째 문자는 필요없으니 버리고, 세 번째 입력값이 'P' 라면 다음 줄로 넘어간다. 2. 2번째 값을 double로 받은걸 grade, 3번째는 double로 과목평점을 변환해서 받은걸 rating 이.. 2023. 4. 15.
[자바] 백준 20920 - 영단어 암기는 괴로워 (java) 목차 문제 : boj20920 필요 알고리즘 정렬, 해시를 사용한 집합과 맵 해당 단어가 몇 번 나왔는지 알기 위해 HashMap을 쓸 수 있어야 한다(다른 방법들도 있긴하다). 그 외에는 문제에서 제시된 방법대로 정렬이 가능한지 묻는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 내 경우엔 Word라는 클래스를 만들고 name이 단어, cnt가 해당 단어가 몇 번 나왔는지를 뜻하도록 했다. 우선은 동일한 단어가 .. 2023. 4. 9.
[자바] 백준 23813 - 회전 (java) 목차 문제 : boj23813 필요 알고리즘 구현, 문자열, 수학 문자열로 문제에서 제시된대로 구현해주는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제 제한이 짧아서 그냥 문자열 자체로 자르고 붙이고 Integer.parseInt로 정수로 변경해주면서 구현해도 상관없다. 내 경우엔 숫자로 바꿔서 계산했다. 우선 mult는 입력으로 들어온 숫자의 자리수-1 만큼 0이 붙은 숫자이다. 예를들어 "12345"라면 .. 2023. 4. 3.
[자바] 백준 15323 - ZigZag (java) 목차 문제 : boj15323 필요 알고리즘 우선순위 큐 정렬을 통해서도 짤 수 있다. 내 경우에 가장 간단히 짤 수 있는게 우선순위 큐라 생각해서 사용했다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에서 제시된 조건을 정리해보면 다음과 같다. 1. K개의 문자열을 입력받는다. 2. N개의 문자를 입력받으며 각각에 대해, 입력받은 문자로 시작하는 현재까지 가장 말한 횟수가 적은 문자를 얘기한다. 3. 만약 가장 말한.. 2023. 3. 10.
[자바] 백준 1251 - 단어 나누기 (java) 목차 문제 : boj1251 필요 알고리즘 브루트 포스 3개의 단어로 나눌 수 있는 모든 경우를 확인해서 풀 수 있다. 정렬 사전순으로 가장 앞서는 단어를 알기 위해 문자열에 대해 사전순으로 정렬을 해줘야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 단어의 최대 길이는 50이다. 따라서 3개의 단어로 나눌 수 있는 경우의 수는 대략 50x50가지 경우가 존재한다. 따라서 O(N^2)으로, 모든 경우를 다 봐도 풀 수.. 2023. 3. 8.
[자바] 백준 25178 - 두라무리 휴지 (java) 문제 : boj25178 필요 알고리즘 개념 구현, 문자열 문제에 제시된대로 코드를 짤 수 있는 구현력(?)만 있으면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에서 제시된 '조건'을 모두 파악할 수 있게 짜주면 된다. 이 때 두 문자열을 각각 a와 b라고 부르겠다. 조건을 하나씩 생각해보자. 1. 한 단어를 재배열해 다른 단어를 만들 수 있어야 한다. a와 b 내부에 있는 각 소문자의 갯수가 동일하면 .. 2023. 2. 18.