본문 바로가기
Algorythms

소프티어 HCPC 2023 Lv2 X marks the Spot java 풀이

by 준형코딩 2024. 6. 29.
언어별 시간/메모리
언어시간메모리
C 1초 1024MB
Java 3초 1024MB
Python 5초 1024MB
C++ 1초 1024MB
JavaScript 5초 1024MB
Kotlin 3초 1024MB
Swift 1초 1024MB

퍼즐을 좋아하는 하이비는 작년에 이어 올해에도 퍼즐과 관련된 문제를 내기로 했다.

 

이번에는 Indirect Indexing으로, 다음과 같은 방식을 따른다.

 

1. N개의 문자열 쌍 (S1,T1), (S2,T2),…, (SN,TN)이 주어진다. 각 쌍에 대해, Si의 길이와 Ti의 길이는 같다.

2.  Si에서 글자 x 또는 X가 등장하는 위치를 Pi라고 하자. 이 위치는 항상 유일하다.

3. 이때, Ti의 Pi번째 글자를 읽으면 된다. 단, 소문자는 대문자로 바꿔야 한다.

4. 예를 들어, Si Indexing이고 Ti Indirect라면 읽게 되는 글자는 R이 된다.

제약조건

1 ≤ N ≤ 500,000

입력되는 문자열의 길이 합은 1,000,000을 넘지 않으며, 모든 문자열은 영어 알파벳 대소문자 또는 숫자로만 이루어져 있다.

입력형식

첫 번째 줄에 문자열 쌍의 개수 N이 주어진다.

두 번째 줄부터 N개의 줄에 걸쳐, i+1번째 줄에는 쌍을 이루는 두 문자열 Si,Ti가 공백으로 구분되어 주어진다.

출력형식

첫 번째 줄에 N개의 문자열 쌍에 대해 읽게 되는 글자를 차례대로 붙여서 출력한다.

입력예제1

8 Exit A1in Axis A0on Exam Star WKXM XHHV maxB pyht XBut Club ATax Keep ifXY doC2

출력예제1

10THHCPC

 
입력예제2

13 Fix Via Axis Anna Linux Ideas Matrix Review Maximum ToExist Exercise Practice GrandPrix ProjectsI Extraction Assistance ComplexUnit Contributor GulfOfMexico JohnHamilton Approximately AfricaAndAsia InTheContextOf Internationals TextAlignCenter LakeSpringfield

출력예제2

ANSWERISBLANK

 

- 풀이

 

간단한 구현 문제

 

하지만 모든 경우의 수를 탐색하는 브루트 포스로 문제를 풀게 되면 시간 초과가 난다. 따라서 java의 indexOf 메서드를 사용하여 위치를 찾고 대문자로 변환하여 출력하면 된다.