We will find a way, we always have.

-interstellar

문자열 6

[LeetCode] 1657. Determine if Two Strings Are Close

🔈 문제 Two strings are considered close if you can attain one from the other using the following operations: Operation 1: Swap any two existing characters.For example, abcde -> aecdb Operation 2: Transform every occurrence of one existing character into another existing character, and do the same with the other character. For example, aacabb -> bbcbaa (all a's turn into b's, and all b's turn into ..

[알고리즘] KMP 알고리즘

문자열 $N$ 와 $H$가 주어졌을 때 $N$에 $H$ 있는지 찾는 문자열 검색 알고리즘에 대해 알아보자. 나이브하게 접근해보면 $N$의 첫문자부터 마지막문자까지 $H$와 하나하나 비교해가면서 일치하는지 판별할 수 있고 해당 솔루션의 시간복잡도는 $O(|N|*|H|)$ 이다. 문자열의 길이가 짧다면 해당 접근방법도 구현도 쉽고 나쁘지만은 않다. 하지만 문자열의 길이가 커진다면 제한시간내에 동작하지 못하게 된다. $N[k...i-1]$과 $H[...i-1]$ 까지는 문자열이 일치하였지만 $H[i]$ 문자에서 일치하지 않는경우 다시 $N[k+1]$ 부터 비교하는 것이 아니라 이미 $H[...i-1]$까지 어떤 문자가 있는지 알고 있으니 보지 않아도 $H[k+1]$이 $H[0]$과 같은지 다른지는 알 수 있지..

[백준] 14425번: 문자열 집합 - 파이썬

📕 풀이 제목처럼 집합을 사용해서 풀면 되는 문제이다. 처음에는 차집합을 이용하여 풀이 하였으나 오답으로 처리되었고, 바로 떠오른 다른 방법은 하나하나 체크해주는 방법이었다. 💻 코드 import sys input = sys.stdin.readline n,m = map(int,input().rstrip().split()) cnt = 0 s = set() check = set() for i in range(n): s.add(input().rstrip()) # 기준이 되는 집합 for j in range(m): word = input().rstrip() if word in s: # 기준 집합에 새로 새로 입력된 문자가 있다면 카운트 cnt += 1 print(cnt) 📎 문제 링크 : 문자열 집합 14425..

[자바스크립트] 기본 데이터 타입 (Basic Data Types)

자바스크립트에서도 다른 언어와 같이 문자열(string)과 정수(interger) 그리고 실수(float)가 있다. 지금 당장 우클릭 누르고 검사을 클릭하면 아래와 같은 창이 나타난다. interger Console 창에 다음과 같이 입력하면(2+2) 더하기 계산이 수행된다. float 실수 형도 잘 수행되는 것을 볼 수 있다. 13.9 + 71.9 = 85.8 이 나오는 것이 아니라 뒤에 000~ 1 이 되는 이유는 컴퓨터는 실수형 계산이 완벽하지 않기 때문이다. 이유는 컴퓨터가 실수를 저장하는 방법에 있다. 컴퓨터가 실수를 저장하는 방법은 부동소수점을 사용하여 저장한다. 이는 실수를 a*2^b의 형태로 바꾼뒤 각각 지수부 가수부를 나누어 저장한다. (담번에 제대로 다뤄보기로 하고 오늘은 패스) str..

[백준] 2179번: 비슷한 단어

정답 비율과 푼사람이 적었지만 문제 해결 알고리즘은 쉽게 생각나서 이 문제를 골랐지만 의외로 복잡했고, 코드가 지저분해졌었다. 그래서 다른 사람의 도움을 얻어보려 열심히 구글링을 해봤지만 맞힌 사람이 63명 밖에 없었고(2022.4.18기준) 파이썬으로 풀이를 적어둔 사람은 한명도 보지 못했다...ㅎㅎ 📘풀이 1. 입력된 단어들을 사전순으로 정렬한다. 이때 인덱스도 같이 저장해준다. 2. 정렬된 단어들을 한글자씩 비교해가면서 접두사의 길이가 최대인 경우를 찾는다. 3. 접두사의 길이가 최대이면서 가장 먼저 입력된 단어를 출력한다. 💻코드 n = int(input()) a = [input() for _ in range(n)] # n = 9 # a = ["noon", "is", "for","lunch","m..