[17609] 회문 (유사회문, 투 포인터)
·
Coding Test/Implement
17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 분석 회문 검사 : i번째 문자와 j번째 문자가 같은지 비교하며 i를 1씩 증가시키고 j를 1씩 감소시켜 가운데로 이동 while문을 이용하여 i가 j보다 작을 때까지 반복 반복문을 순회하면서 i와 j가 다른 문자가 있을 경우, 회문이 아니므로 유사회문 검사 유사회문 검사 : 유사회문은 1문자를 제외하고 회문인 경우므로, 다른 문자가 있을때 i를 한칸 건너 뛰고 검사하거나 j를 한칸 건너 뛰고 검사 했을 때 회문 따라서 secondCheck함수에 각각 인자를 i+1, j-1로 변경하여 검사 ..
[1253] 좋다 (좋은 수 구하기, 투 포인터)
·
Coding Test/Data Structure
1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 분석 투 포인터 이동원칙 A[i] + A[j] > K : j--; A[i] + A[j] < K : i++; A[i] + A[j] == K : count++; 프로세스 종료 풀이 n = int(input()) list = list(map(int, input().split())) list.sort() cnt = 0 # 다른 두 수의 합인 수의 개수 for k in range(n): val = list[k] i = 0 j = n-1 while i < j: # 투 포인터 알고리즘 if list[i..