백준 383

[baekjoon] 백준 1316번(파이썬): 그룹 단어 체커

문제 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 알고리즘 - 반복문을 통해 단어를 확인한다. - 반복문을 통해 각 단어들의 문자를 확인한다. - 현재 비교하고 있는 문자와 다음 문자들을 확인하면서 그룹 단어의 유무를 판단한다. 코드 import sys n = int(sys.stdin.readline()) cnt = 0 # 반복문을 통해 단어를 확인 for _ in range(n): word = list(map(str, sys.stdin.readline().strip()))..

CodingTest/Baekjoon 2021.12.20

[baekjoon] 백준 1157번(파이썬): 단어 공부

문제 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 알고리즘 - 알파벳 단어를 입력받을 때 모든 알파벳을 대문자로 받는다. - collections 메서드에 Counter 함수를 통해 알파벳의 개수를 확인한다. - 알파벳의 개수가 1개 이하라면 최대 개수의 알파벳을 출력한다. - 알파벳의 개수가 2개 이상이라면 알파벳의 개수를 비교하여 출력한다. 코드 import sys from collections import Counter word = list(map(str, sys.stdin.readline().strip().upper())) # 입력..

CodingTest/Baekjoon 2021.12.19

[baekjoon] 백준 2675번(파이썬): 문자열 반복

문제 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 알고리즘 - 테스트 케이스만큼 반복한다. - 반복해야 하는 문자를 반복 횟수만큼 출력한다. 코드 import sys t = int(sys.stdin.readline()) # 테스트 케이스를 반복 for _ in range(t): r, m = map(str, sys.stdin.readline().split()) # 반복해야하는 문자를 반복 횟수만큼 출력 for i in m: for j in range(int(r)): print(i, end="") p..

CodingTest/Baekjoon 2021.12.18

[baekjoon] 백준 1152번(파이썬): 단어의 개수

문제 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 알고리즘 - String에 split()을 알면 쉽게 풀 수 있는 문제이다. - split()을 통해 공백 부분을 기준으로 문자만을 나누어 리스트에 넣어두고 리스트에 길이를 출력한다. 코드 import sys c = list(map(str, sys.stdin.readline().split())) print(len(c)) github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해..

CodingTest/Baekjoon 2021.12.17

[baekjoon] 백준 8958번(파이썬): OX퀴즈

문제 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 알고리즘 - 반복문을 통해 테스트 케이스를 실행한다. - 점수의 변수를 res로 정하고 점수에 더해줄 변수를 cnt로 정한다. - 반복문을 통해 문자열을 확인하고 문자가 'O'라면 점수에 cnt를 더해주고 cnt에 +1을 더해준다. - 문자가 'X'라면 cnt를 1로 초기화해준다. 코드 import sys n = int(sys.stdin.readline()) # 반복문을 통해 테스트 케이스를 실행 for _ in range(n): m =..

CodingTest/Baekjoon 2021.12.16

[baekjoon] 백준 11720번(파이썬): 숫자의 합

문제 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 알고리즘 - 정수형을 리스트로 받는다. - 받은 리스트의 합을 출력한다. 코드 import sys n = int(sys.stdin.readline()) m = list(map(int, sys.stdin.readline().strip())) # 정수형을 리스트로 받는다. print(sum(m)) github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an a..

CodingTest/Baekjoon 2021.12.15

[baekjoon] 백준 11722번(파이썬): 가장 긴 감소하는 부분 수열

문제 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 알고리즘 - 리스트를 거꾸로 변환해 가장 큰 증가하는 부분 수열의 길이를 구하는 방법으로 바꾸어 문제를 수행한다. - 반복문을 통해 수열이 증가하는지 확인하고 i번의 수와 이전수를 비교한다. - 두 수를 비교하고 현재 수가 더 크다면 증가하는 부분 수열의 길이를 구한다. - 현재 증가한 부분수열보다 비교하고 있는 길이가 크다면 현재 증가한 부분 수열을 비교하고 있는 길이로 초기화한다...

CodingTest/Baekjoon 2021.12.14

[baekjoon] 백준 11055번(파이썬): 가장 큰 증가 부분 수열

문제 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 알고리즘 - 반복문을 통해 각 인덱스 위치에 가장 큰 증가 부분 수열의 합을 구한다. - 반복문과 조건문을 통해 현재 인덱스 값과 이전 인덱스 값을 비교한다. - 현재 인덱스 값이 이전 인덱스 값보다 크다면 현재 인덱스 위치에 가장 큰 부분 수열의 합과 이전 인덱스 위치에 가장 큰 부분 수열의 합 + 현재 수를 비교한다. - 이전 인덱스 값이 더 크다면 현재 인덱스 위치에 가장 큰 부분 수열의 합과 ..

CodingTest/Baekjoon 2021.12.13

[baekjoon] 백준 2293번(파이썬): 동전 1

문제 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 알고리즘 - 반복문을 통해 코인을 확인한다. - 반복문을 통해 코인으로 1원부터 k원까지 만들 수 있는 경우의 수를 확인한다. - k원을 만드는 과정으로는 현재 코인 - 현재 확인 중인 수(j)의 값을 dp[j]에 더하는 방식이다. ex) 현재 코인: 1, 2, 5일 때 index 현재 코인 : 1 현재 코인 : 2 현재 코인 : 5 1 1 0 0 2 11 dp[0] + dp[2] 0 3 111 dp[1] + dp[3] 0 4 1111 dp[2] + dp[4..

CodingTest/Baekjoon 2021.12.12

[baekjoon] 백준 1699번(파이썬): 제곱수의 합

문제 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 알고리즘 - 각 자연수를 만드는 제곱수에 최대 항의 개수를 dp에 저장한다. - 이중 반복문을 통해 각 자연수를 만드는 제곱수에 항의 개수를 구한다. - 각 자연수가 제곱수보다 작다면 제곱수로 항의 개수를 만들지 못하므로 반복을 멈춘다. - 각 자연수를 만다는 제곱수에 최소 항의 개수를 구한다. 코드 pypy3 해결 # pypy3 (통과) # python3 (시간초과) import sys n = int(sys.stdi..

CodingTest/Baekjoon 2021.12.09