목록SWEA/D3 (91)
으하하 공부일기
[문제] 방송사에서 생방송 자막 송출을 담당하고 있는 재경이는 한글 타자가 무려 1000에 육박한다. 누구보다 빠른 한글 타자를 보유하고 있지만 치명적인 단점이 있다. 영어 타자의 오타가 극심하게 발생한다. 재경이는 어떤 단어를 쓸 때에 오타를 특정한 방법으로 발생시킨다. 치고자 하는 단어와 길이는 동일한 단어를 쓰지만, i번째 문자에다가 원래 단어의 (i-1) 번째, i 번째, (i+1) 번째 문자 중 무엇이든 쳐버린다. 특히 제일 첫 문자는 첫 문자와 그 다음 문자 중 하나를 쓸 수 있고, 마지막 문자는 마지막과 그 앞의 문자를 쓸 수 있다. 예를 들어서, apa 라는 단어에서 재경이가 낼 수 있는 오타는 aaa, aap, apa, app, paa, pap, ppa, ppp 중 하나를 칠 수 있는 것..
[문제] 은빈이는 시간 개념이 없다. 은빈이를 보고 있자면 코리아 타임이라는 단어가 왜 생겼는지 알 수 있는 것 같다. 호석이는 은빈이를 위해 프로그램을 작성해주려고 한다. 현재 시각과 약속 시각을 알려주면 약속까지 남은 시간을 알려주는 프로그램이다. 현재 시각보다 약속 시각이 더 빠른 경우에는, 약속이 다음 날에 있는 것이다. 모든 시간은 00:00:00 ~ 23:59:59 사이로 표현되고 XX:XX:XX 형태이며, 숫자가 2자리가 아닐 경우에는 0으로 채운다. 현재 시각과 약속 시각을 받으면 남은 시간을 알려주는 프로그램을 작성해라. [입력] 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 현재 시각이 주어지고 두 번째 줄에는 약속 시각이 주어진다. 현재 시각이 ..
[문제] 숫자는 다양성을 가지고 있다. 다양성이란, 숫자를 구성하는 수의 종류를 의미한다. 예를 들어서 1512 라는 숫자는 ‘1’, ‘5’, ‘2’로 구성되어 있기 때문에 다양성이 3이다. 숫자가 주어졌을 때 그 숫자의 다양성을 구하는 프로그램을 작성하라. [입력] 첫 번째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 다양성을 체크하고 싶은 숫자 X(1 ≤ X ≤ 109) 가 주어진다. [출력] 각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고, 주어진 숫자의 다양성을 출력하라. 문제 풀기 7728. 다양성 측정 [풀이] 문자열을 입력받아 한자리씩 뽑아서 그 값과 일치하는 인덱스의 값을 증가시킨다. 배열을..
[문제] 성경이는 대통령 직속 통역관이다. 대통령은 사람 이름을 외우는 것을 굉장히 중요시 한다. 따라서 외국 대사와의 대화에서 나오는 모든 이름을 외워달라고 성경이에게 부탁했다. 외국 대사는 총 N개의 문장을 말했다. 각 문장의 마지막 단어는 세 가지 구두점 ‘.’, ‘?’, ‘!’ 중 하나를 마지막에 포함한다. 문장은 대소문자 알파벳와 숫자로 이루어진 단어들이 공백을 사이에 두고 구성되어 있으며, 예외적으로 마지막 단어는 구두점으로 끝나게 된다. 이름은 대문자 알파벳으로 시작하며 나머지는 소문자 알파벳인 단어들이다. 예외적으로, 단어의 마지막이 구두점일 경우에도 이름이며, 대문자 한글자도 이름이다. 성경이는 대통령을 위해서 외국 대사와의 대화를 문서로 받아서 이름이 몇 번 나오는 지를 알려줘야 한다...
[문제] 문자열 P는 스스로를 계속 복제해서 매우 긴 문자열이 되었다. 복제하는 방법은 다음과 같다. P0 = “0” Pi+1 = Pi + “0” + f(g(Pi)) 여기서, f(A) 함수는 문자열 A의 모든 문자를 반전시킨다. 예를 들어서, f(“10110”) = “01001”이다. g(A)함수는 문자열 A를 좌우 반전 시킨다. 예를 들어서, g(“10110”) = “01101” 이다. 위와 같은 복제 방법을 무한히 반복한 문자열 P의 K번째 문자가 무엇인지 구하여라. [입력] 첫 번째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스마다 K(1 ≤ K ≤ 1018)가 주어진다. [출력] 각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를..
[문제] 세영이는 태양(S)과 지구(E)와 달(M)을 이용하여 연도를 기억한다. 이를 이용한 방법을 SEM력이라고 부르며, SEM력은 자연수 3개, S, E, M으로 이루어져있다. 첫 번째 수는 태양, 두 번째는 지구, 세 번째는 달과 관련 있다. AD 1년에 SEM력을 1 1 1로 정의했다. 1년이 지날 때마다 각 수를 1씩 증가시키는데, S는 365보다 커지면 1로, E는 24보다 커지면 1로, M은 29보다 커지면 1로 돌아온다. 예를 들어서 AD 24년은 24 24 24이고 AD 25년은 25 1 25이다. SEM력으로 이루어진 연도가 주어졌을 때, 이를 만족하는 실제 연도 중 가능한 가장 빠른 연도를 구하여라. [입력] 첫 번째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 2000)가 주어진다. ..
[문제] 연속적인 것에는 어떤 아름다움이 있다. 상원이는 자연수를 아름답게 쓰는 법을 고민하다가 연속된 자연수의 합으로 표현하기로 했다. 예를 들면, 15는 15 = 7 + 8 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5 로 4가지 방법이 있다. 아름다운 건 다다익선이라고 생각하는 상원이는 표현하고 싶은 자연수 N이 얼마나 많은 경우로 표현될 수 있는 지 궁금해졌다. 상원이를 도와서 문제를 해결하자. [입력] 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 표현하고 싶은 자연수 N(1 ≤ N ≤ 106)이 주어진다. [출력] 각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고, N을 연속된 자연수의 합으로 표현할 ..
[문제] 어느 날 경근이는 알파벳 대문자로 이루어진 두 문자열을 비교해야 했는데, 이 날은 공교롭게도 안경이 없었다. 경근이는 매우 눈이 나빠서 안경을 벗으면 문자열을 문자 단위로 구별할 수는 있지만, 두 문자가 정확히 같은 지는 알지 못한다. 특히 알파벳 대문자 같은 경우 문자에 나 있는 구멍의 개수가 같으면 같은 문자이고, 다르면 다른 문자라고 생각한다. 예를 들어 구멍이 하나도 없는 CEFGHIJKLMNSTUVWXYZ들을 같은 문자로 생각하고, 구멍이 한 개 나 있는 ADOPQR들을 같은 문자로 생각하며, 구멍이 두 개 나 있는 유일한 문자 B는 유일하게 정확히 알 수 있다. 알파벳 대문자로 이루어진 두 문자열이 주어졌을 때, 경근이는 두 문자열이 같다고 판별하는지 다르다고 판별할 것인가? [입력]..