본문 바로가기

알고리즘49

[알고리즘 문제] 회전탑 (Python / 파이썬) 문제 N개의 층에 각각 M개의 숫자가 쓰여있다. 회전탑은 층에 존재하는 숫자를 회전시킬 수 있다. 회전 후 인접한 부분의 숫자가 같을 경우 회전판에서 숫자를 지운다. 회전탑의 회전은 시계 방향 혹은 반시계 방향으로 가능하다. 한 번 회전시 회전되는 층은 다수가 될 수 있다. 회전시켜야할 층의 번호와 배수관계에 있는 회전판들은 모두 회전된다. 또한, 회전은 동시에 일어난다. 층을 회전한 뒤 회전한 어떠한 층에서도 지워지는 숫자가 없을 경우, 모든 층에 존재하는 숫자들의 평균을 구해 각각의 숫자와 비교한다.(평균값의 소숫점 아래는 버린다) 만약 평균보다 크면 -1을, 평균보다 작으면 +1을 더해준다. 앞서 말한 처리를 한 다음엔 다시 제거가 일어나는 것이 아닌 다음 회전이 일어난다. 회전탑의 정보와 회전시키.. 2022. 5. 21.
[알고리즘 문제] 행복 회로 (Python / 파이썬) 문제 유니는 교무실에 심부름 갔다가 수학 선생님의 책상 위 하필이면 자신의 수행평가 학습지와 선생님의 채점 글씨를 발견했다. 채점 글씨에는 N개의 수가 나열되어 있었고 수 사이마다 연산자가 있었는데 이것이 기억이 안나 자신의 점수를 모른다. 유니는 행복회로를 돌리기로 했다. 수 사이에 +와 *를 넣어서 만들 수 있는 가장 큰 결과값을 자신의 점수로 생각하기로 했다면 그 점수는 몇 점인지 구하는 프로그램을 작성하시오. 유니는 수학을 못해 연산자의 우선순위는 고려하지 않고 앞에서부터 계산한다. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 N이 주어진다. 각 테스트케이스의 둘째 줄에 유니가 본 수들이 공백으로 구분되어 주어진다. 모든 수는 0 이상 9 이하의 정수다. ( 1 .. 2022. 5. 21.
[알고리즘 문제] 카드 더하기 (Python / 파이썬) 문제 유니는 오늘 학교에서 덧셈을 배웠다. 유니의 집에는 N장의 카드가 있는데, 각 카드에는 1보다 크거나 같고 1,000,000 보다 작거나 같은 정수가 하나씩 적혀 있다. 유니는 이제 이 카드 중 일부를 골라서 더하면 새로운 수를 만들 수 있다는 것을 안다. 하지만 카드가 무한하지 않기 때문에 만들지 못하는 수도 존재한다는 것을 알았다. 카드에 적힌 수가 주어질 때, 유니가 카드를 어떻게 골라서 더해도 만들 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 N이 주어진다. 각 테스트케이스의 둘째 줄에 카드에 적힌 번호가 공백으로 구분되어 주어진다. 각 카드에 적힌 수는 1 이상 1,000,000 이하의 자연수다. .. 2022. 5. 21.
[알고리즘 문제] 알파벳 사이 숫자 (Python / 파이썬) 문제 지니는 토종 한국인이다. 영어를 못하는지, 하지 않는 것인지는 미스테리다. 영어시간에 선생님은 숫자와 알파벳 소문자가 혼합된 글자를 N개 줄로 구분 지어 내주었다. 그리고 a(1)->z(26)까지 매칭시키라 하셨다. 영어를 싫어하는 지니는 선생님이 시킨 일은 무시하고 문자열에서 연속된 숫자로 구성된 수를 뽑아서 비내림차순으로 정렬해 제출할 것이다. 0으로 시작하는 수는 의미 없는 0을 모두 지워서 적는다. 지니가 제출할 수열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 N이 주어진다. 각 테스트케이스의 두번째 줄부터 N줄에 걸쳐 지니가 받은 문자열들이 주어진다. 모든 문자열의 길이는 100 이하다. ( 1 ≤ T ≤ 10, 1 ≤ N.. 2022. 5. 21.