알고리즘48 [알고리즘/baekjoon] 15829_Hashing(python) 문제 https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net # 문제가 길어 보이지만 핵심은 단 1가지이다. (수식은 문제에서 주어진다) # 알파벳(소문자)를 어떻게 표현해 줄 것인가? 문제에서 a는 1, b는 2.. 이렇게 표현할 수 있다고 한다. (문제를 잘 읽어야 하는 이유) # 그럼 a=1, b=2 어떻게 지정할 것인가 ? 여러 가지 방법이 있겠지만 필자는 문자를 아스키코드로 바꾸는 ord를 이용했다. 정답 * 코드가 궁금하시거나 잘 보이지 .. 2021. 10. 19. [알고리즘/baekjoon] 2231_분해합(python) 문제 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net # 분해합 = 어떤수 + 어떤수의 각 자리 수의 합 # 여기서 구한는건 어떤수를 구하는 것이다! (문제를 잘 이해할 것) # brute force로 range의 범위를 1부터 N까지 정해도 되지만 실행시간이 오래 걸리는 단점이 있기 때문에 그것을 보완하기 위해 만든 코드이다 # 각 자리의 수의 합의 최대값은 자릿수*9(ex. 세자리수의 각자리수 합의 최대값은 각자.. 2021. 10. 19. [알고리즘/baekjoon] 1157_단어 공부(python) 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net - set, count, index, max의 사용법을 알고 있어야 한다. 정답 - 단어에서 각 알파벳이 몇번 사용되었는지 먼저 알아야 한다 -> set(중복 제거), count(횟수 세기) -> new_list 저장 - 가장 많이 사용된 알파벳을 알기 위해서 new_list의 최대값 개수가 1개를 초과하면 가장 많이 사용된 알파벳이 중복으로 존재한다는 의미이므로 "?" 출력한다. - 1개를 초과하지 않으면 new_list의.. 2021. 10. 16. [알고리즘/baekjoon] 10809_알파벳 찾기(python) 문제 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net - 알파벳 소문자의 아스키코드는 97-122(a-z)이다. - find함수와 index함수의 사용법과 차이점을 알아야 한다. 정답 - range(n, m)의 범위는 n~m-1까지이다 - find 함수는 찾을 문자가 없으면 -1을 반환하고, index 함수는 ValueError를 발생한다. - find 함수는 문자열만 가능하고, index 함수는 문자열/리스트/튜플이 가능하다. -.. 2021. 10. 16. [알고리즘/baekjoon] 2577_숫자의 개수(python) 문제 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net - list로 바꾸기 위해서 str가 되어야 한다. - count : 문자열 안에서 찾고 싶은 문자의 개수를 알 수 있다. 정답 - 세 수의 곱의 결과를 리스트로 만들어 준다. - 0-9까지의 리스트에서 숫자 하나씩 꺼내 주면서 matrix에 각 숫자의 개수가 몇 개인지 출력한다. 2021. 10. 16. [알고리즘/baekjoon] 2439_별 찍기(python) 문제 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 이 문제는 쉽지만, 내가 몰랐던 부분을 알 수 있는 문제였다. - , (콤마)는 print문을 연결할 때 문자, 숫자 상관없이 일정 공백을 사이로 두고 출력한다. - +(플러스)는 문자끼리는 공백 없이 이어져서 출력이 되고, 숫자끼리는 합산되어서 출력된다. - 하지만 문자와 숫자 사이에는 오류가 발생한다. * 여기서 , (콤마)를 사용할 경우 출력은 겉보기엔 같지만 제출하면 출력 형식 맞지 않다는 오류가 발생한다. * print(변수.. 2021. 10. 16. 이전 1 ··· 5 6 7 8 다음