컴공

문제 백준 1074번/실버1 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 해석 2의 몇 제곱인지 알려주는 n, 몇 번째 행인지 알려주는 r, 몇 번째 열인지 알려주는 c, 이렇게 3개를 입력받은 후, 행렬에서 해당 위치에 위치하는 수는 무엇인지 출력해야한다. 단 행렬에서 각 요소의 번호는 Z자를 그리면서 새겨지는 방식이다. 풀이 전략 N의 값이 최대 15이면 행의 길이는 2^15 = 32768, 열의 길이도 32768이다. 만..
문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 분석 n과 m 을 입력받고 n개의 문자열이 들어있는 s집합에 m개의 다른 문자열들이 몇 개가 포함되어있는가(일치하는가)를 찾는 문제이다. 주의 해야할 점은 N의 범위는 최대 10000개, M의 범위도 최대 10000개 이므로, 둘 다 반복성이 있는 리스트 또는 튜플을 이용하게 된다면 M의 마지막 단어가 N에 포함되어 있지 않은 경우 이미 10000번째 까..
문제 문제분석 에라토스테네스의 체는 한참 알고리즘 공부할 때 소수 구하는 문제 부분에서 나왔었다. 2부터 시작하여, 2는 실수이므로 2를 제외한 2의 배수들은 모두 제거한다. 2보다 큰 숫자인 3도 실수이므로, 3을 제외한 3의 배수인 모든 뒤쪽의 수들을 전부 지운다. 다음 4는 이미 지워져있으므로 넘어가고, 5는 소수이므로 5를 제외한 모든 배수들을 지운다. 이를 반복하여 소수들을 구하는 것이 에라토스테네스의 체이다. 이도 마찬가지인데, 범위는 n, k를 입력받았을 때 n까지로 정해져있고, k번째로 지워진 수를 구하는 것이고 n의 수가 1000 보다 작으므로 이중포문으로 돌려도 충분한 자원으로 프로그램을 실행시킬 수 있을 것이다. 풀이 전략 이 중 for문 두 번 돌리면서 미리 선언된 배열에서 조건을 ..
문제 문제 링크는 글 맨 아래에 첨부하였다. 문제분석 0~9까지의 숫자중 입력받은 수에서 가장 많이 쓰여진 숫자의 개수를 출력하는 문제이다. 단, 숫자 6과 숫자9의 경우에는 둘이 가지고 있는 개수를 각각 균등하게 나눠진다고 이해하면 편하다. 예제 입력 1번같은 경우 6이 0개, 9개 4개 이므로 9의 2개를 6에 2개를 주면 둘 다 2개가 존재하게 되므로 답은 2개 출력된다. 풀이 전략 딕셔너리를 이용하여 키 값을 0~9를 두고, 수를 입력받았을 시 각 자리 별로 키 값의 값을 수정한다. 6과 9의 개수는 더해준 후 2로 나누어서 6과 9에 각각 나누어준다 이후 가장 value 가 큰 값을 가져온다. 코드 고찰 26번째 코드에서 count.tiems()보단 max(count)를 하였으면 원하는 답이 바..
성밍쟁
'컴공' 태그의 글 목록