본문 바로가기

분류 전체보기293

[알고리즘 문제] 직사각형 완성하기 (Python / 파이썬) 문제 직사각형을 좋아하는 유니는 좌표평면 위에 직사각형 하나를 그렸다. 이 직사각형의 각 변은 x축에 평행하거나 y축에 평행하도록 그려졌다. 어느날 직사각형보다 직각삼각형을 좋아하는 지니가 유니의 직사각형의 네 꼭짓점 중 하나를 지워버렸다. 유니가 다시 직사각형을 만들 수 있도록 남아있는 세 꼭짓점의 좌표를 입력하면 지니가 지운 점의 좌표를 알려주는 프로그램을 작성하시오. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 x1, y1, x2, y2, x3, y3가 공백으로 구분되어 주어진다. 이는 남은 세 점의 좌표가 각각 (x1, y1), (x2, y2), (x3, y3)임을 의미한다. 모든 점의 좌표는 1 이상 1,000,000 이하의 자연수다. ( 1 ≤ T ≤ 10 ).. 2022. 5. 11.
[알고리즘 문제] 문자열 압축2 (Python / 파이썬) 문제 유니는 압축된 문자열을 갖고 있다. 압축된 문자열이란 어떤 문자열에서 연속된 문자가 존재하면 그 문자들을 연속 등장 횟수와 해당 문자 하나로 바꿔서 만든 문자열을 말한다. 예를들어 원본 문자열이 AAABBBBBCAA였다면 3A5BC2A로 압축된다. 이는 A가 세 번 등장한 후 B가 다섯 번 등장하고, C가 한 번 A가 두 번 등장함을 의미한다. 여기서 C처럼 연속으로 한 번만 등장한 문자는 1을 적지 않는다. 압축된 문자열이 주어질 때 원본 문자열을 출력하는 프로그램을 작성하시오. 원본 문자열에서 10번 이상 연속으로 등장하는 문자는 없다는 것이 보장된다. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 압축된 문자열이 주어진다. 압축된 문자열의 길이는 2,000 이하.. 2022. 5. 11.
[알고리즘 문제] 해싱2 (Python / 파이썬) 문제 유니는 해싱에 대해 배우고 있다.길이가 N인 수열 A를 길이가 M인 해싱수열 B를 이용해 해싱하는 과정은 다음과 같이 진행된다. A의 0~M-1번 인덱스의 값을 B의 0~M-1번 인덱스의 값과 순서대로 곱한 뒤 그 결과를 모두 더한다.A의 1~M번 인덱스의 값을 B의 0~M-1번 인덱스의 값과 순서대로 곱한 뒤 그 결과를 모두 더한다.... 위 과정의 결과들을 나열하면 B를 이용해 A를 해싱했다고 볼 수 있다.수열 A, B가 주어질 때 해싱 결과 중 가장 큰 값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 N, M이 공백으로 구분되어 주어진다. 각 테스트케이스의 두번째 줄에는 수열 A가 공백으로 구분되어 주어지고, 세번째 줄에는 수.. 2022. 5. 11.
[알고리즘 문제] 369 (Python / 파이썬) 문제 유니는 지니와 369 게임을 하고 있다. 369 게임은 유니가 처음에 1을 부르고, 지니가 2, 유니가 3, 지니가 4, ... 처럼 번갈아가며 자연수를 순서대로 부르면서 진행 된다. 단, 3, 6, 9가 들어간 수는 수를 부르지 않고 그 수에 3, 6, 9가 등장한 횟수만큼 박수를 쳐야 한다. 예를 들어 3, 6, 9, 13, 23 등은 박수를 한 번 쳐야 하고, 33, 63, 3322는 박수를 두 번, 9999는 박수를 네 번 쳐야 한다. 자연수 N이 주어질 때 유니와 지니가 부르는 수와 박수를 출력하는 프로그램을 작성하시오. 수를 부른다면 그 수를 출력하고, 박수를 친다면 를 박수의 횟수만큼 출력한다. 만약 세 번의 박수를 친다면 ___ 처럼 를 세 개 붙여서 출력한다. 입력 첫째 줄에 N이 .. 2022. 5. 11.