www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문자를 반으로 나눠 중간까지만 비교를 하는 방법, 그리고 전체 비교를 하는 방법이 있는데 일단 나는 전체 비교를 하는 것으로 작성을 하였다. 비교 문자열을 만들고 비교 하였는데 간단한 문제라서 크게 고민할 문제는 아니었다. import sys input = sys.stdin.readline test = input().rstrip() test_compare = test[::-1] if test == test_compare: print(1) else: print(0)
programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 1번 사람부터 3번 사람까지 찍는 답은 규칙적이다. 1번 사람 : [1,2,3,4,5] 반복 2번 사람 : [2,1,2,3,2,4,2,5] 반복 3번 사람 : [3,3,1,1,2,2,4,4,5,5] 반복 그러므로 답안과 사람들의 답안을 비교하며 count 숫자를 늘리면 된다. 비교를 할 때, 사람들의 답이 반복되므로 정답 리스트의 길이를 사람들의 답 길이로 나눈 나머지를 이용..
programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 3진법으로 변환을 할 때는 divmod 내장 함수를 반복하여 사용하여 구하였고 뒤집는 것은 별다른 조치를 하지 않아도 3진법의 끝 부분부터 저장되므로 신경쓰지 않아도 된다. divmod : 몫과 나머지를 반환한다. (튜플형식으로 반환) int(x,3) : 3진법으로 구성된 x를 10진법으로 바꿔주는 역할을 한다. def solut..
programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 백준과 프로그래머스를 번갈아 가면서 풀고 있는데 얼른 공부에 박차를 가해서 좀 더 실력을 높이고 싶다.. 프로그래머스 레벨1문제라 어려운 문제는 아니지만, 문제를 풀었고 그것에 대한 기록으로 프로그래머스의 레벨1,2,3 모두 여기에 담고 싶다. 이 문제는 문제에서 주어진 그대로 for문을 돌면서 나누어지는지 ..
www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 처음에 문제를 읽고 이게 무슨 말이지..? 분해합이 뭔지는 알겠는데 뭐가 뭐의 생성자..? 잠깐 이렇게 멍을 때렸는데.. 코드로 구현하는데는 어렵지 않았다. 가장 작은 생성자를 구하면 되므로 1부터 입력받는 n까지 for문으로 분해합 숫자를 확인하면 되는 문제였다. 그리고 생성자가 없을 경우에는 입력받은 숫자와 비교하여 0을 출력하면 된다. import sys input = sys...
www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 단순하게 반복문을 통해 두 리스트를 비교하면 시간 초과가 생겨서 문제를 풀지 못한다. 따라서 이분 탐색을 활용하여 문제를 풀어야 한다. 이분 탐색을 하기전, 정렬을 한 뒤 이분탐색에 의하여 도출한 인덱스를 이용하여 답을 구하면 된다. 어차피 이분탐색에 의해 도출된 인덱스보다 작은 부분은 문제의 조건을 만족할 것이기에 따로 신경을 쓰지 않아도 된다. import..