Loading...

그리디 알고리즘 연습하기2 -잃어버린 괄호-

1. 문제 1541번: 잃어버린 괄호 (acmicpc.net) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 수식에 괄호를 쳐서 결과를 최소로 만드는 문제 2. 풀이 수식에 +,-만 나온다는 점을 생각하면.. 이 수식이 최소가 될려면?? +를 먼저 계산해서, 각 항을 최대로 만들어줘야한다. 그래야 -에 의해 최소가 되겠지 그래서 -로 수식을 split해주고... split된 리스트를 순회해서... 각 원소를 int()로 바꿔본다. int()로 바꿀때 에러가 나거나 나지 않거나 둘중 하나다. 에러가 나지..

2022. 8. 16. 03:09

문자열 패턴 매칭 brute force 알고리즘

1. brute force 패턴 매칭 알고리즘 원본 문자열 s에 대하여 특정 문자열 패턴 p가 몇번이나 존재하는지 찾고자 하는 알고리즘 모든 경우의 수를 검사하여 몇번이나 패턴이 존재하는지 검사한다 이때 패턴과 해당 길이의 부분 문자열을 전부 비교하는게 아니라 한글자 한글자씩을 비교함 예를 들어 s = abcdefghi p = cdf 라고 한다면 abcdefghi cdf 부터 비교를 시작.. abc와 cdf를 한번에 비교하는게 아니라 a와 c를 비교하여 a와 c가 다르므로 cdf를 한칸 뒤로 민다 내 생각에 abc와 cdf를 한번에 비교하는 시간보다 a와 c를 비교하고 한칸 뒤로 미는게 효과적이라 그런가?? 아닌데..? 일단 한글자씩 비교한다고 배웠으니까 그렇게 알아놓자고 아무튼 abcdefghi cdf..

2022. 7. 27. 02:38

파이썬이 변수에 값을 저장하는 방법은?

1. 모든 문자는 변경불가능(immutable) 다음과 같은 코드를 살펴보면 여기서 id()는 변수의 주소를 구하는 함수 word안에 'math'가 들어간 다음에 다시 word에 'test'가 들어가면서 word에 들어간 문자열이 변경되는거 아니냐?? >> 이건 변경된게 아니라 'math'는 사라지고 'test'라는 문자열로 새로 word에 덮어씌운거 2. 파이썬의 변수 저장방식 파이썬은 변수에 값 'math'가 들어가는게 아니라 그것을 가리키는 주소가 들어간다고함 이건 마치 사물함에 물건을 넣어놓고 사물함 번호만 기억해놓는 것 과 같다 즉 값(물건)을 가리키는 주소(사물함)을 외워놓고 값(물건)이 필요하면 주소(사물함)를 통해 가져옴 실제로는 주소 바꿔치기 3. 주소를 통한 값 호출 그렇다면 주소를 통..

2022. 4. 10. 02:46

파이썬 문자열 필수 스킬 - N-gram 순회하기, 대소문자를 무시한 변환

1. N-gram 순회하기 예를 들어 문자열 'abcdefabcxydzedase'가 있다고 해보자. 일반적으로 for문을 이용해 순회하면 1글자씩 순회하는데 이는 1-gram이라고 부른다 string = 'abcdefabcxydzedase' for char in string: print(char) a b c d e f a b c x y d z e d a s e 그런데 알고리즘 문제를 푸는 코딩테스트를 보다보면 2-gram 이상으로 순회하고 싶을 때가 있다. 예를 들어 'abcdefabcxydzedase'에서 ab, bc, cd, de, ef, fa, ab, bc, cx, xy,.... 방식으로 순회하거나 abc, bcd, cde, def, ...로 순회하거나 어떻게 가능할까? zip함수를 이용하면 2-g..

class내에서 method 내부에 다른 method 호출하기

1. 문제 영어 소문자로 주어지는 문자열에서 모음을 제거한 나머지 문자열을 출력하는 method와 자음을 제거한 나머지 문자열을 출력하는 method를 작성한다면?? 2. 제한사항 입력으로 주어지는 문자열 s에는 최소한 하나 이상의 모음과 자음이 포함된다 3. 풀이 class FilterLetter: def __init__(self,s): self.s = s def filter_vowel(self): vowel_list = ['a','e','i','o','u'] remove_vowel_s = self.s for char in vowel_list: remove_vowel_s = remove_vowel_s.replace(char,'') return remove_vowel_s def filter_consona..

2022. 2. 12. 18:50

파이썬 프로그래밍 정규표현식 사용하는법

1. 정규표현식 복잡한 문자열을 패턴으로 정의하는 문자 표현 공식 특정 규칙에 만족하는 모든 문자열 집합을 추출함 전화번호는 3자,4자,4자의 일정한 규칙이 있어서 적절한 정규표현식을 사용하면 쉽게 추출할 수 있을 것 문법이 방대해서 필요할때마다 찾아보면서 사용 www.regexr.com RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com 위 사이트인 정규식표현장에서 텍스트를 넣고 정규식을 사용해 찾아봄 해당 정규식의 의미도 설명해줘서 좋다 2. 기본적인 문법 [abc] 는 a나 b나 c 중 하나라도 들어가면 지정해줌 -..