본문 바로가기
728x90

문자열23

[python] 백준 5582 공통 부분 문자열 https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 문제 해결 for문으로 우선 서로 알파벳이 맞는 것을 찾아야겠다는 생각을 했다. (다만 이중 for문이면 시간초과 나지 않을까? 생각했는데 python3에서는 시간초과가 났다. pypy3를 써야한다.) 조금 특이했던 것은 문장 길이를 구하는 것이기 때문에 dp[i][j]를 string1 i번째 알파벳과 string2 j번째 알파벳이 같은데 앞에서부터 이어진 최대 길이라고 생각하면 된다... 2023. 5. 1.
[python] 백준 17609 회문 https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 문제 해결 양쪽 끝 start = 0 , end = len(word)-1로 시직해서 투포인터로 양쪽 대칭을 확인하는 문제 만약 대칭이 안되는 부분이 있다면 양쪽 중 한 문자를 없앴을 때 대칭이 되는지 확인 주의할 점은 대칭이 안되는 부분이 abca와 같이 붙어있는 경우가 있으므로 start 2023. 4. 23.
[python] 백준 1371 가장 많은 글자 https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이 www.acmicpc.net 문제 해결 문제를 해결하는 방식은 전체 문자열을 이어붙여서 나오는 알파벳 양이 많은 것을 리스트에 넣고 sort() 정렬시키면 될 것이다. 하지만 문장이 50줄 이하라는 것만 알고 몇줄이 주어질지 모르는 상황에서 input을 어떻게 하는지 어려웠다. 정답은 input= sys.stdin.read를 통해 조건없는 문자열 개수를 입력할 수 있다는 것을 알 수 있었다. CODE import sy.. 2023. 4. 14.
[python] 백준 4569 비밀번호 발음하기 https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 문제 해결 주어진 조건을 하나씩 살펴보며 걸리는 것이 있으면 변수를 0에서 1로 변환시켜(bool 기호) 만들 수 없다고 출력 그냥 구현문제. 빠진 조건 없는지 확인하기 CODE vowel = ['a', 'e', 'i', 'o', 'u'] while True: string = input().rstrip() if string == 'end': break spells = list(string) .. 2023. 4. 12.
728x90