백준/문자열

    [백준 1181] 단어 정렬 - python

    [백준 1181] 단어 정렬 - python

    https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제 풀이 길이순과 사전순을 이용한 정렬을 해야했다 둘을 이용하려면 lambda를 사용한 sort함수를 이용하면 된다 (이 문제에서 핵심) 처음에 중복을 제거하여 받기 위해 set을 이용해 word를 입력받았다 words에는 (word길이, word)를 담아주었다 둘을 이용해 정렬을 해야하기 때문에 후에 list로 바꿔준 뒤 lambda를 이용해 길이와 사전 순으로 정렬했다 lambda..

    [백준 1316] 그룹 단어 체커 - python

    [백준 1316] 그룹 단어 체커 - python

    https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 풀이 처음에는 그 전 문자와 현재 문자가 같을 때의 조건도 넣었었는데, 짤 필요 없다는 것을 깨달았습니다 만약 p가 2번 연속된 문자인 경우 before도 똑같이 p가 될것이고, lst에도 넣을 필요 없기 때문입니다 문자를 입력받아 문자 길이만큼 for문을 돌리고, 그 전 문자와 현재 문자가 다른지 파악한 다음 만약 lst안에 현재 문자가 존재하는 경우에는 그..

    [백준 20154] 이 구역의 승자는 누구야?! - python

    [백준 20154] 이 구역의 승자는 누구야?! - python

    https://www.acmicpc.net/problem/20154 20154번: 이 구역의 승자는 누구야?! 첫째 줄에 알파벳 대문자로만 이루어진 길이 K(1 ≤ K ≤ 1,000,000)인 문자열 S가 주어진다. www.acmicpc.net 문제 풀이 토너먼트 식으로 풀이되어있지만 결국 문자 획수의 합을 구하는 것과 같다 매치하는 방법은 아스키코드의 차로 풀이했다 획수를 매치한 arr를 10으로 나눈 나머지를 통해 결과값을 구했다 alpha = [3, 2, 1, 2, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1] s = input() arr = [] # 글자와 획수 매치 for a in s: i = ord(a)-ord('A') #..

    [백준 10798] 세로읽기 - python

    [백준 10798] 세로읽기 - python

    https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 문제 풀이 글자수가 15자까지므로 빈 리스트 15개를 리스트에 담아둔다 for문을 돌면서 첫번째 글자, 두번째 글자 ,,, 를 0번째 리스트, 1번째 리스트에 append한다 result는 arr를 돌면서 각 list를 join한 글자수를 붙여준다 arr = [[] for _ in range(15)] for _ in range(5): string = input() for i in range..

    [백준 9046] 복호화 - python

    [백준 9046] 복호화 - python

    https://www.acmicpc.net/problem/9046 9046번: 복호화 입력의 T(1 ≤ T ≤ 20)는 테스트 케이스로, 입력 제일 상단에 주어진다. 각각의 테스트 케이스는 한 줄마다 소문자와 공백으로 이루어진 영어 문장이 주어진다. 이 문장의 길이는 적어도 1이상이 www.acmicpc.net 문제 풀이 처음 입력받은 string값을 dic에 한글자씩 key값으로 두고 count합니다 (공백은 제외) dic에 string[i]값이 없는 경우엔 새로 key값 정의하여 value값 1로 설정 string[i]값이 있는 경우엔 value값 += 1 cf ) 공백을 제거하는 또다른 방법 replace => string = input(), string = string.replace(" ", ""..