Problem Solving1234 [백준] 2358 평행선 - Data Structure / Java • 문제 링크 2358번: 평행선 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 각 점의 좌표가 주어진다. 같은 좌표가 여러 번 주어질 수 있으며, 그런 경우 서로 다른 점으로 간주한다. 좌표는 절댓값이 231보다 작 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; import java.util.Str.. 2023. 3. 23. [백준] 1972 놀라운 문자열 - Data Structure / Java • 문제 링크 1972번: 놀라운 문자열 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문 www.acmicpc.net • 풀이 과정 입력받은 각 문자열의 모든 D쌍을 구해 set에 해당 D쌍 문자열의 중복 여부에 따라 제시된 어구를 출력한다. 이때 D의 거리가 증가할 때마다 set을 초기화시켜 중복을 검사한다. 각 문자열의 D쌍중 이미 set에 중복되는 값이 있을 경우 놀라운 문자열이 아니므로 해당 문자열에 대한 반복문을 탈출하고, 모든 D쌍이 set에 저장될 경우 놀라운 문자열이다. • 풀이 코드 import java.io.BufferedReader; impor.. 2023. 3. 22. [백준] 1544 사이클 단어 - Data Structure / Java • 문제 링크 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net • 풀이 과정 각 단어를 입력받을 때 해당 단어가 set에 존재하는 지 확인하고, 만약 존재하지 않다면 해당 단어로 만들어지는 모든 사이클 단어를 구해 set에 저장한다. 사이클 단어는 메모리 효율을 위해 StringBuilder 를 활용해 단어의 앞뒤를 순환시켜 구할 수 있으며, 모든 사이클 단어를 set에 저장했을 시 카운트를 증가시킨다. 이 후 특정 단어의 사이클 단어가 입력될 시 이미 해당 단어는 포함하므로 건너뛰고, 새로운 단어가 입력될 시.. 2023. 3. 21. [백준] 9322 철벽 보안 알고리즘 - Data Structure / Java • 문제 링크 9322번: 철벽 보안 알고리즘 소희는 공개키와 개인키 한 쌍으로 보안을 유지하는 것이 매우 불편하다고 생각했다. 그래서 소희는 공개키만을 이용하는 암호화 체계를 개발했다. 이를 "철벽 보안 알고리즘"이라고 부르기로 www.acmicpc.net • 풀이 과정 제 1 공개키의 각 단어의 순서를 map에 저장한다. 제 2 공개키를 입력받을 때, 각 단어의 제 1 공개키 단어와 대응되는 순서 값을 배열에 저장한다. 다음 평문을 입력받을 때, 배열에 저장된 단어 배치 순서를 역으로 참조해, 각각의 단어를 정답 배열에 저장 및 공백으로 구분해 출력한다. • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java... 2023. 3. 20. [백준] 4158 CD - Data Structure / Java • 문제 링크 4158번: CD 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다. N과 M은 최대 백만이다. 다음 줄 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashSet; import java.util.Set; import java.util.StringToke.. 2023. 3. 19. [백준] 10546 배부른 마라토너 - Data Structure / Java • 문제 링크 10546번: 배부른 마라토너 마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명 www.acmicpc.net • 풀이 과정 참가자 중 동명이인이 있을 수 있다는 조건에 의해 set이 아닌 map을 활용한다. 각 참가자의 이름을 key로 map에 저장하되, 동명이인이라면 value를 증가시켜 처리한다. 완주자의 이름을 입력받고 해당 완주자가 map에 존재한다면 해당 value를 감소시키고, 만약 value가 0이라면 해당 이름의 참가자는 모두 완주를 했으므로 map에서 제거한다. 위의 과정을 거쳐 map에 잔존하는 1개의 이름을 정답으로써 출력한다... 2023. 3. 18. 이전 1 ··· 149 150 151 152 153 154 155 ··· 206 다음