본문 바로가기

전체 글86

[백준 알고리즘/python] 백준 2941번 크로아티아 알파벳, 파이썬 백준 알고리즘 2941번 크로아티아 알파벳, 파이썬 이번 문제는 백준 알고리즘의 2941번 크로아티아 알파벳 문제이다. 파이썬으로 풀어보았다. 크로아티아 알파벳 표가 주어지는데, 이를 이용해서 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 구현하는 문제. 나는 솔직히 이 문제 쪼끔 어려웠다. 생각하는 시간이 좀 늘어났고, 코드 짜는데도 오류가 많이 났었다. 먼저 문제의 조건이다. # 조건 1. 첫째 줄에 최대 100글자의 단어가 주어진다. # 조건 2. 단어는 크로아티아 알파벳으로 이루어져 있다. # 조건 3. 표를 제외하고는 원래 알파벳과 동일하다. 이 문제에 대한 내 생각을 정리 해 봤다. # 생각 1. 리스트에 크로아티아 알파벳을 추가한다. # 생각 2. 반복문을 통해 문자열에서 크로.. 2020. 3. 19.
[백준 알고리즘/python] 백준 5622번 다이얼, 파이썬 백준 알고리즘 5622번 다이얼, 파이썬 이번 문제는 백준 알고리즘의 5622번 다이얼 문제이다. 역시나 파이썬이다. 처음에 봤을땐 솔직히 뭔 문제지 싶으면서 머리가 띵 했다. 하지만 점차 이해가 되면서 어떻게 풀어야 할 지 감이 왔다. 그러니까 이 문제는, 전화를 걸고 싶은 곳이 있으면 다이얼을 돌려서 전화를 걸어야 하는데, 할머니는 전화번호를 각 숫자에 해당하는 알파벳을 통해 외운다. 알파벳이 주어 졌을때, 이 알파벳이 의미하는 전화번호를 걸 때 걸리는 시간을 구하라는 문제이다. 문제의 조건이다. # 조건 1. 숫자 1을 걸려면 2초가 걸리고, 한 칸 옆에 있는 2를 걸려면 1초가 더 소요된다. # 조건 2. 전화를 걸 때, 알파벳을 외워서 전화를 건다. # 조건 3. ABC = 2, DEF = 3,.. 2020. 3. 19.
[백준 알고리즘/python] 백준 2908번 상수, 파이썬 백준 알고리즘 2908번 상수, 파이썬 이번 문제는 백준 알고리즘의 2908번 상수 문제이다. 파이썬으로 풀어봤다. 결국 문제는 숫자가 두개 주어지는데, 이 숫자를 거꾸로 뒤집어서 대소를 비교하는 문제이다. #조건 1. 첫쨰 줄에 두 수 A,B가 주어진다. #조건 2. 두 수는 같지 않은 세자리 수이며, 0이 포함되어 있지않다. 문제에 대한 내 생각이다. #생각 1. 거꾸로 돌리는 건 for문에서 i를 반대로 읽으면 될 것 같다.( 세자리 수 고정이니까) #생각 2. 그 수를 따로 저장해서 대소를 비교하고 출력 생각에 대한 내 코드이다. num1, num2 = input().split() numA, numB = str(), str() for i in range(-1,-4,-1):# 세 자리수 고정이라서 .. 2020. 3. 19.
[백준 알고리즘/python] 백준 1152번 단어의 개수, 파이썬 백준 알고리즘 1152번 단어의 개수, 파이썬 이번에는 백준 알고리즘의 1152번 단어의 개수 문제이다. 파이썬으로 풀어보았다. 문제 자체는 간단하다. 문장이 주어지는데, 이 문장에서 단어의 개수를 찾으면 된다. #조건 1. 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. #조건 2. 단어는 띄어쓰기 한 개를 기준으로 구분된다. #조건 3. 문자열의 앞과 뒤에는 공백이 있을 수 있다. 문제에 대한 내 생각이다. #생각 1. 띄어쓰기를 기준으로 받는 .split을 활용 해서 문자열 리스트에 넣는다. #생각 2. 리스트의 길이가 곧 단어의 개수이다. 바로 코드를 짜 내려 갔다. 짧았다. string = list() string = input().split() print(len(string)).. 2020. 3. 19.
[파이썬/python] 리스트의 원소로 인덱스에 접근하기 리스트의 원소를 가지고 있을 때, 인덱스에 접근 할 수 있는 방법을 찾아보다가, 좀 자주 쓰일 것 같다는 생각이 들어서 남겨두려고 한다. 코드로 들어가보자. lst = [1,2,3,4,5,6] print(lst.index(3)) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 2 Process finished with exit code 0 위처럼 값을 가지고 있을 때, 3이라는 값의 인덱스를 찾고싶으면 .index(x)를 통해 인덱스로 접근이 가능하다. 리스트 인덱스의 처음은 0이니까 3인 값은 lst[2]에 존재하니 2를 반환 했다. 단, 주의할 점이 있는데, lst = [1,2,3,4,3] print(lst.index(3)) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 2 Process finished wit.. 2020. 3. 19.
[파이썬/python] 리스트 안에있는 특정 원소의 개수 좀 유용한 기능인거 같아서, 잊지 않으려고 기록해 둔다. 제목과 같이, 파이썬에서 리스트 안에 있는, 특정 원소의 개수를 알아내는 함수이다. 바로 코드로 들어가 보자. lst = [1,2,3,4,5,1] print(lst.count(1)) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 2 Process finished with exit code 0 바로 눈에 보이겠지만, 리스트에 .count(x)를 해 주면 리스트 안에 있는 x의 개수를 반환해 준다. 위의 코드에서는 1의 개수를 물어봤으니, 2를 반환 해 준 것이다. 2020. 3. 19.
[백준 알고리즘/python] 백준 1157번 단어 공부, 파이썬 백준 알고리즘 1157번 단어 공부, 파이썬 이번 문제는 백준 알고리즘의 1157번 단어 공부 문제이다. 역시 파이썬으로 풀어보았다. 솔직히 이 문제를 처음 읽었을 때는, "어, 뭐지? 좀 쉬운데?"라고 생각 했었다. 하지만 나는 "시간 초과"로 코드를 세 번이나 제출했다. 일단 언제나 그렇듯 문제 분석부터 했다. #조건 1. 첫째 줄에는 알파벳 대소문자로 이루어진 단어가 주어진다. #조건 2. 가장 많이 사용된 알파벳이 여러 개일 경우 ?를 출력한다. #조건 3. 대문자와 소문자는 구분하지 않는다. #조건 4. 출력값은 대문자이다. 이 문제에 대한 내 생각 정리이다. #생각 1. 대소문자 문자로 이루어진 문자열이 주어지는거니까 .count를 사용한다 #생각 2. 대소문자를 구분하지 않으니까, 이는 문자.. 2020. 3. 19.
[백준 알고리즘/python] 백준 2675번 문자열 반복, 파이썬 [백준 알고리즘/python] 백준 2675번 문자열 반복, 파이썬 이번에는 백준 알고리즘의 2675번 문자열 반복 문제를 풀어보았다. 내가 사용한 언어는 파이썬이다. 이 문제는 딱 보자마자 어떻게 풀어야 할지 생각이 났다. 좀 많이 쉬운 문제였다. 그래도 정리하자면, 문자열 S를 입력 받은 후에 각 문자를 R번 반복해서 새 문자열 P를 출력하는 프로그램이다. #조건 1. 첫째 줄에는 테스트 케이스의 개수가 주어진다. #조건 2. 각 테스트 케이스에는 글자 반복횟수 R과 문자열 S가 공백을 통해 주어진다. #생각 1. 테스트 케이스의 개수 만큼 반복문을 돌린다. #생각 2. 개수 만큼의 반복문 안에서, 문자열을 받아와서 글자 * 반복횟수를 출력한다. 파이썬에서는 A*5 를 수행하면 AAAAA가 나왔던걸로.. 2020. 3. 19.
[백준 알고리즘/python] 백준 10809번 알파벳 찾기, 파이썬 백준 알고리즘 10809번 알파벳 찾기, 파이썬 이번 문제는 백준 알고리즘의 10809번 알파벳 찾기 문제이다. 역시 파이썬으로 풀었다. 이 문제는 생각 할 시간이 좀 필요했다. 내 생각대로 문제를 분해해보면, #생각1. 알파벳 소문자로 이루어진 단어 S가 주어진다. #생각2. 이 단어 S에 각 알파벳이 처음 등장하는 위치를 숫자로 출력하고, 포함되지 않는 알파벳은 -1로 출력한다. #생각3. 리스트를 알파벳 개수만큼 만들고 -1로 초기화한다. #생각4. 반복문을 돌리면서 처음 나온 알파벳을 인덱스만큼 더해준다. 첫글자는 0번째 위치이다. #생각5. 중복되는 문자가 있는 경우, 리스트의 값이 -1이 아닌경우 그냥 넘어가는 것을 조건으로 한다. 위처럼 생각하고 구현하니 좀 간단하게 나오긴 했다. lst =.. 2020. 3. 18.
[백준 알고리즘/python] 백준 11720번 숫자의 합, 파이썬 백준 알고리즘 11720번 숫자의합 이번에 푼 문제는 백준 알고리즘의 11720번 숫자의 합 문제이다. 역시 파이썬으로 풀어보았다. 이 문제는 제법 간단하다. 별 생각없이 보자마자 "아, 바로 그냥 받아와서 더해주면 되겠구나" 생각하고, 바로 써 내려 갔다. 그렇게 써 내려간 코드이다. len = int(input()) num = input() result = 0 for i in num: result = result + int(i) print(result) 파이썬은 문자열을 반복문으로 받아오면 for문의 i로 바로 접근할 수 있으니, 그냥 더해주면 결과가 간단하게 나온다. 문제 출처 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (.. 2020. 3. 18.