전체 글

성밍쟁 공붕방
문제 문제분석 에라토스테네스의 체는 한참 알고리즘 공부할 때 소수 구하는 문제 부분에서 나왔었다. 2부터 시작하여, 2는 실수이므로 2를 제외한 2의 배수들은 모두 제거한다. 2보다 큰 숫자인 3도 실수이므로, 3을 제외한 3의 배수인 모든 뒤쪽의 수들을 전부 지운다. 다음 4는 이미 지워져있으므로 넘어가고, 5는 소수이므로 5를 제외한 모든 배수들을 지운다. 이를 반복하여 소수들을 구하는 것이 에라토스테네스의 체이다. 이도 마찬가지인데, 범위는 n, k를 입력받았을 때 n까지로 정해져있고, k번째로 지워진 수를 구하는 것이고 n의 수가 1000 보다 작으므로 이중포문으로 돌려도 충분한 자원으로 프로그램을 실행시킬 수 있을 것이다. 풀이 전략 이 중 for문 두 번 돌리면서 미리 선언된 배열에서 조건을 ..
문제 문제 링크는 맨 밑에 첨부하였다. 문제분석 a의 원소의 개수, b의 원소의 개수를 입력받고 a의 원소들, b의 원소들을 입력받은 후 a의 원소들에서 b의 원소들을 빼고 남은 길이 + b의 원소들을 빼고 a의 원소들을 빼고 남은 길이를 더해줘야하는 문제이다 풀이 전략 기본적으로 파이썬에서는 set 집합 함수가 주어진다. 핵심적으로 - a.difference(b) : a-b - b.difference(a) : b-a 를 이용하여 구할 수 있으나, 그냥 a-b , b-a 하면 구하고자 하는 값이 바로 나와서 굳이 해당 메소드를 이용하지는 않는다. 코드 결과 고찰 딱히 어려울 건 없었다. 파이썬의 집합을 사용하지 않고 풀어도 살짝 복잡해지는 정도이지 크게 어렵지는 않을 것 같다. set 를 조금 더 정리한..
문제 문제 링크는 글 맨 아래에 첨부하였다. 문제분석 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)를 하였으면 원하는 답이 바..
성밍쟁
너드인의 밤