반응형

전체 글 295

백준 BAEKJOON 20944번 팰린드롬 척화비 [PYTHON/파이썬]

백준 BAEKJOON 20944번 팰린드롬 척화비 [PYTHON/파이썬] https://www.acmicpc.net/problem/20944 20944번: 팰린드롬 척화비 흥선이는 팰린드롬을 싫어한다. 어느 날 지구를 정복한 흥선이는 팰린드롬 척화비를 세워, 전 지구의 팰린드롬을 없애버렸다. 그리고 수미상관 순수비를 만들어 수미상관을 널리 퍼뜨렸다. 팰 www.acmicpc.net 문제의 입력, 출력만 보면 이해가 안될수도 있다. 문제의 출력 부분을 보면 '만약 여러 가지가 있다면 그중 하나를 출력한다.' 문구를 보고 간단하게 생각해보았다. 알파벳 'a'를 사용하여 길이가 N인 문자열을 만들어주면 그것 또한 팰린드롬 문자열이니 조건에 충족한다. N = int(input()) print('a' * N)

백준 BAEKJOON 20528번 끝말잇기 [PYTHON/파이썬]

백준 BAEKJOON 20528번 끝말잇기 [PYTHON/파이썬] https://www.acmicpc.net/problem/20528 20528번: 끝말잇기 욱제는 준원이랑 끝말잇기를 하고 있다. 준원이가 시작하자마자 '스트론튬'을 외쳐서 욱제는 피가 거꾸로 솟았다~ 솟으면 백두산~ 백두산은 높아~ 높으면 비행기~ 비행기는 빨라~ 빠르면 기차~ www.acmicpc.net 입력으로 주어진 문자열들은 모두 팰린드롬 문자열이기에 맨 앞글자가 모두 같은지 판단해주면 된다. set() 집합을 만든 후 주어진 문자열들의 앞글자를 추가해준 뒤 집합의 길이가 1이면 끝말잇기가 가능, 0이면 불가능 N = int(input()) palindrome = input().split() result = set() for i ..

백준 BAEKJOON 10384번 팬그램 [PYTHON/파이썬]

백준 BAEKJOON 10384번 팬그램 [PYTHON/파이썬] https://www.acmicpc.net/problem/10384 10384번: 팬그램 팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다. 다음은 유명한 팬그램 중 하나이다. The quick brown fox jumps over a lazy dog 더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용 www.acmicpc.net 먼저 알파벳 리스트를 만들었다. (a = 97, z = 122) Case (번호)를 구현하기 위해 for 문을 1부터 시작하게 만들었고 문자열 입력을 알파벳 리스트와 대칭시키기 위해 lower()를 사용하여 모두 소문자로 변환시켰다. check 이라는 리스트에 0으로 길이 26으로 채웠다. (a~..

백준 BAEKJOON 25371번 k진수 정수의 자릿수 나누기 [PYTHON/파이썬]

백준 BAEKJOON 25371번 k진수 정수의 자릿수 나누기 [PYTHON/파이썬] https://www.acmicpc.net/problem/25371 25371번: k진수 정수의 자릿수 나누기 양의 정수 n과 k가 주어진다. n을 k진수로 변환한 수를 a라고 하자. a의 각 자릿수를 0을 기준으로 나눈 결과를 집합 b라고 하자. 0이 연속으로 나와서 공백이 생기는 경우는 집합 b에 포함되지 않는 www.acmicpc.net 파이썬 진수변환(2진법, 3진법, 5진법, 10진법)[n진법] python에서는 기본적으로 int() 라는 함수를 지원한다int(string, base)2051104185276710진수로 변경이 가능하다.2, 8, 16진수는 bin(), oct(), hex() 함수를 지원한다.0b..

백준 BAEKJOON 1316번 그룹 단어 체커 [PYTHON/파이썬]

백준 BAEKJOON 1316번 그룹 단어 체커 [PYTHON/파이썬] https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 단어의 개수를 그룹 단어에 저장한 뒤 word 를 입력 받고 0번째 글자부터 for문을 돌렸다. 연속된 글자가 같은 글자면 continue로 넘겼지만 그 이후 글자가 같은 글자가 나온다면 그것은 그룹 단어가 아니기 때문에 -1 해줬다. N = int(input()) group_word = N f..

백준 BAEKJOON 2941번 크로아티아 알파벳 [PYTHON/파이썬]

백준 BAEKJOON 2941번 크로아티아 알파벳 [PYTHON/파이썬] https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 시작은 크로아티아 알파벳에 해당하는 문자들을 리스트에 담았다. 리스트에 담은 요소들을 입력 받은 문자열과 비교 후 replace() 를 사용하여 '*' 문자로 치환하였다. 문제만 읽어보았을 때는 '*' 로 치환된 문자의 개수만 세주면 되는 문제인 줄 알았는데 다시 읽어보니 치환 후 전체의..

백준 BAEKJOON 5622번 다이얼 [PYTHON/파이썬]

백준 BAEKJOON 5622번 다이얼 [PYTHON/파이썬] https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 먼저 문제 속 다이얼이 담겨있는 알파벳을 리스트를 만들었다. for 문을 통해 각 글자가 어디에 해당하는지 index를 구한 뒤 +3을 해서 출력하였다. dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] word = input() result = 0 for i in range(len(word)) : for j in dial : if word[i] in ..

백준 BAEKJOON 2908번 상수 [PYTHON/파이썬]

백준 BAEKJOON 2908번 상수 [PYTHON/파이썬] https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net a, b 값을 문자열로 받은 뒤 [::-1] 를 사용하여 문자열을 뒤집어 다시 저장하였다. 그리고 a,b를 int로 변환 후 max 함수를 사용하여 값이 높은 것을 출력하였다. a, b = input().split() a, b = a[::-1], b[::-1] print(max(int(a),int(b)))

백준 BAEKJOON 1152번 단어의 개수 [PYTHON/파이썬]

백준 BAEKJOON 1152번 단어의 개수 [PYTHON/파이썬] https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 변수 하나에 문자열을 input().split()를 사용하면 리스트 형태로 값이 저장이 된다. 그리고 len(리스트명)을 사용하여 리스트의 길이를 구하였다. word = input().split() print(len(word))

백준 BAEKJOON 1157번 단어 공부 [PYTHON/파이썬]

백준 BAEKJOON 1157번 단어 공부 [PYTHON/파이썬] https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 대소문자를 구분하지 않기에 word 입력값에 upper()를 사용하여 모든 알파벳을 대문자로 만들었다. new_word 에는 set 함수를 사용하여 중복된 알파벳을 제거하였다. new_word를 기반으로 하여 word의 알파뱃 중 같은 알파벳이 얼마나 쓰인지 확인하고 if 문을 통해 판별하는 방법으로 문제를 풀었다. word = input().upper() new_..

반응형