파이썬
-
[백준] 1316번_그룹단어체커Study/알고리즘 2020. 2. 6. 12:44
문제 링크 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 처음에 특정 알파벳의 첫 인덱스와 그 count를 갖고 더한 후 (첫 인덱스+count-1=마지막 인덱스) 마지막 인덱스에 있는 알파벳이 특정 알파벳인지를 확인하려고 했었다. n = ..
-
[백준] 5622번_다이얼Study/알고리즘 2020. 2. 6. 03:20
문제 링크 : https://www.acmicpc.net/problem/5622 5622번: 다이얼 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. www.acmicpc.net alpha = ["ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"] dial = lis..
-
[백준] 2908번_상수Study/알고리즘 2020. 2. 6. 03:02
문제 링크 : https://www.acmicpc.net/problem/2908 2908번: 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734과 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 www.acmicpc.net a,b = map(str,input().split()) a = a[::-1] b = b[::-1] print(max(int(a..
-
[백준] 1152번_단어의개수Study/알고리즘 2020. 2. 6. 02:52
문제 링크 : https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net string = list(input().rstrip().lstrip().split()) print(len(string)) 라고 풀고 생각해보니 어차피 공백을 기준으로 list에 들어가기에 rstrip(), lstrip()을 해 줄 필요가 없었다.
-
[백준] 1157번_단어공부Study/알고리즘 2020. 2. 6. 02:46
문제 링크 : https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net from collections import defaultdict word = input().upper() d = defaultdict(lambda : 0) for w in word: d[w] += 1 max_value = max(d.values()) pKey = [] for key,value in d.items(): if value == max_value: pKey.append(key) if len(pKey)==1:..
-
[백준] 4673번_셀프넘버Study/알고리즘 2020. 2. 6. 01:59
문제 링크 : https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 www.acmicpc.net arr = [i for i in range(1,10001)] for i in range(1,10001): str_i = st..
-
[백준] 1592번_영식이와친구들Study/알고리즘 2020. 2. 4. 21:53
문제 링크 : https://www.acmicpc.net/problem/1592 1592번: 영식이와 친구들 일단 1번이 공을 잡는다. 1번은 공을 한 번 잡았기 때문에, 공을 3번에게 던진다. 3번은 공을 한 번 잡았기 때문에, 공을 5번에게 던진다. 5번은 2번에게 던지고, 2번은 4번에게 던진다. 4번은 1번에게 던진다. 1번은 이제 공을 두 번 잡았기 때문에, 공을 4번에게 던진다. 4번은 2번에게 던지고, 2번은 5번에게 던지고, 5번은 3번에게 던지고, 마지막으로 3번은 1번에게 던진다. 1번은 이제 공을 세 번 잡았기 때문에, 게임은 끝난다. www.acmicpc.net n,m,l = map(int,input().split()) people = {} for i in range(1,n+1): ..
-
[백준] 1952번_달팽이2Study/알고리즘 2020. 2. 4. 15:00
문제 링크 : https://www.acmicpc.net/problem/1952 1952번: 달팽이2 M줄 N칸으로 되어 있는 표 위에, 달팽이 모양으로 선을 그리려고 한다. 위의 그림은 M=5, N=3의 예이다. 이제 표의 왼쪽 위 칸(ㅇ)에서 시작하여, 오른쪽으로 선을 그려 나간다. 표의 바깥 또는 이미 그려진 칸에 닿아서 더 이상 이동할 수 없게 되면, 시계방향으로 선을 꺾어서 그려나간다. ㅇ → ↘ ↗ ↘ ↓ ↑ ↓ ↓ ↑ 끝 ↓ ↖ ← ↙ 위의 표는 선을 그려 나간 모양을 나타낸 것이다. (선이 꺾어진 부분은 대각선으로 나타내었다. 표의 모든 칸 www.acmicpc.net m, n = map(int,input().split()) grid = [[0 for _ in range(n)] for _ ..