BOJ

    [BOJ] 1259 팰린드롬수 - Python

    ■ 문제 링크 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net ■ 문제 본 문제는 solved.ac 브론즈 1 문제이다. ■ 풀이 처음에 반복문 안에서 시작한다. 이는, 0을 입력 받았을때, 소스코드를 종료하기 위함이다. number를 입력 받는데, 예를들어 number이 1221일때, 펠린드롬 수인지 분별하기 위해, 우리는 이것을 비교하게 된다. number[0] == number[-1] number[1] == number[-2] 이 두개가 모두 같은지 확인..

    [BOJ] 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 ■ 문제 본 문제는 solved.ac 브론즈 2 문제이다. ■ 풀이 음.. 이 문제를 푸는데에 고민이 많았던 것 같다. 처음 나의 계획은, N에서부터 하나씩 마이너스 해주면서, 분해합을 만족하는 값을 찾는다. 분해합을 구했을 경우, 반복문 탈출을 하려 했으나, 문제가 있었다. 여기서는 N의 가장 작은 생성자를 구하라고 하였다. 그래서 시간초과로 안될 것 ..

    [BOJ] 1157 단어공부 - Python

    ■ 문제 링크 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net ■ 문제 본 문제는 solved.ac 브론즈 1 문제이다. ■ 풀이 대소문자를 구분하지 않는다 + 알파벳을 대문자로 출력한다. => 입력받는 단어의 알파벳을 모두 대문자로 변환하여 word 변수에 저장한다. 그 후, 중복을 제거하기 위해, list(set(word))를 해주며, word_list에 중복이 제거된 알파벳이 들어가게 된다. 이제 그 word_list에 중복이 제거된 알파벳들이, word에 몇 개씩 들어가..

    [BOJ] 1181 단어 정렬 - Python

    ■ 문제 링크 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net ■ 문제 본 문제는 solved.ac 실버5 문제이다. ■ 풀이 N을 입력받고, N개의 단어를 입력받으며, word_list에 이미 존재하는 단어일 시, 리스트에 append 하지 않도록 하여 단어 중복을 제거하였다. 그 후, 정렬 기준을 lambda함수를 이용하여 정의해 주었다. 첫 번째 정렬 기준 : 단어 길이 두 번째 정렬 기준 : 단어 (사전순으로) 그리고 word..