import java.util.Scanner; /* * 2216번 문자열과 점수 */ public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int match = sc.nextInt() * -1; int gap = sc.nextInt() * -1; int mismatch = sc.nextInt() * -1; sc.nextLine(); String a = sc.nextLine(); String b = sc.nextLine(); int[][] opt = new int[a.length() + 1][b.length() + 1]; for (int i = 1; i <= a.length(); i++) opt[i][0] = opt[i - 1][0] + gap; for (int j = 1; j <= b.length(); j++) opt[0][j] = opt[0][j - 1] + gap; for (int i = 1; i <= a.length(); i++) { for (int j = 1; j <= b.length(); j++) { int diag; if (a.charAt(i - 1) == b.charAt(j - 1)) { diag = opt[i - 1][j - 1] + match; } else { diag = opt[i - 1][j - 1] + mismatch; } opt[i][j] = Math.min( Math.min(opt[i - 1][j] + gap, opt[i][j - 1] + +gap), diag); } } System.out.println(opt[a.length()][b.length()] * -1); sc.close(); } }
[백준 알고리즘 풀이] 2216번 문자열과 점수
Sequence Alignment에서 잘 알려진 문제로 edit distance 계산하라는 문제다. 위키피디아에 잘 정리되있기 때문에 구체 설명은 하지 않는다.
https://en.wikipedia.org/wiki/Edit_distance
Subscribe to:
Post Comments (Atom)
-
음성 인공지능 분야에서 스타트업이 생각해볼 수 있는 전략은 아마 다음과 같이 3가지 정도가 있을 것이다: 독자적 Vertical 음성 인공지능 Application 구축 기 음성 플랫폼을 활용한 B2B2C 형태의 비지니스 구축 기 음성 플랫폼...
-
네이버, KT, 오라클, 그리고 잠깐의 사업을 거쳐 삼성전자에 입사한지도 2년이 지났습니다. 2016년 병신년을 뒤로하며 이번에는 꽤 색다른 도전에 나섭니다. 무슨 일이야!? 국내 O2O 숙박전문 회사 CTO로 조인합니다! 존! 나 고...
-
우리는 남들의 비판을 경험하면서 창조적 사고를 포기하게 된다. 비판으로부터 방어논리와 자기 검열에 취중한 나머지 더 이상 사고에 자유롭지 못하게 되니까 그렇다. 남들의 비판을 두려워하지 않는 자세.. 그것이 순수한 창조적 사고를 지속하는 방법이다...
-
“군자는 어울리되 패거리를 짓지 않고, 소인은 패거리를 짓되 어울리지 않는다." 군자는 의(義)를 높이기에 아부하지 않고, 부화뇌동(附和雷同)하지 않는다. 군자는 대의명분을 지키면서 화합하며 협력한다. 하지만 소인은 이익을 높이기에 이해관...
No comments:
Post a Comment