본문 바로가기
반응형

분류 전체보기205

[Easy] 정렬된 두 링크드 리스트 합치기 문제: 정렬된 두 링크드 리스트를 합쳐서 하나의 정렬된 링크드 리스트로 반환해라. 예제:입력: 1->3->4, 1->5->6출력: 1->1->3->4->5->6 링크드 리스트 클래스 구조는 다음과 같다. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }구현되어야 할 함수의 선언은 다음과 같다.ListNode mergeTwoLists(ListNode l1, ListNode l2); 풀이:재귀함수를 이용하면 간단히 풀 수 있는 문제이다.첫 번째 노드의 값을 비교해서 더 큰 값이 작은 값의 next가 되면 된다.그리고 작은 값의 next와 큰 값과 다시 비교해서 merge하는 과정을 계속 반복하여 null이 나올 때 까.. 2017. 12. 13.
[Easy] 유효한 괄호 문자열 찾기 문제: 주어진 문자열이 유효한 괄호인지 검사하는 함수를 작성하라. 괄호의 종류는 다음 세 가지가 있다. "( )", "{ }", "[ ]" 각 괄호의 우선순위는 존재하지 않지만 다른 괄호가 열려있는 중간에 닫는 괄호가 온다면 유효하지 않는 문자열이 된다. 예를 들어 "( [ ] )" 이 문자열은 유효한 것이다. 하지만 "( [ ) ]" 이 것은 유효하지 않은 문자열이다. 풀이:이번 문제는 스택을 이용하면 간단히 해결 가능한 문제이다. 괄호 문자 중 여는 괄호가 나오면 스택에 push를 하고 닫힌 괄호가 나올 때 스택에서 pop을 해서 두 쌍이 유효한 것 인지 비교한다. 두 쌍이 제대로 이뤄져 있다면 true두 쌍이 서로 다른 괄호의 종류이거나 스택에 더이상 괄호가 없는데 pop을 시도한 경우는 false.. 2017. 12. 13.
[Easy] 공통 접두사 찾기 문제: 주어진 문자열 배열에서 가장 긴 공통 접두사를 찾아라. 예)입력 값 : {"abc", "abcd", "ab"}결과 : "ab" 풀이:각 배열에 들어있는 문자열을 첫 글자부터 하나씩 비교해 나간다. 만약 다른 글자를 포함한 것이 있거나 더이상 글자가 없다면 중단해서 그 이전 까지의 문자열이 common prefix이다. Java code: class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length == 0) return ""; StringBuilder result = new StringBuilder(); boolean same = true; for(int i = 0; i < strs[0].length(); i+.. 2017. 12. 13.
[Easy] 로마숫자를 정수형으로 변환하기 문제:입력받은 로마 숫자를 정수형 값으로 변환하여 반환해라. 입력 값의 타입은 문자열이고 출력 타입은 integer형이다.입력받는 로마 숫자의 제한은 (3999)까지 이다. 로마 숫자 표I 1 V 5 X 10 L 50 C 100 D 500 M 1000 풀이이 문제는 로마 숫자의 구성만 알면 쉽게 풀 수 있다. 각각의 알파벳은 고유의 숫자 값을 가지고 있고 주의해야할 점은 8은 VIII로 표현되지만 9는 IV로 표현 된다는 점이다. 예를 하나 더들면 40은 XL이다. 이 점을 활용하여 우선 모든 문자의 값을 별도의 배열에 저장한다.예를 들어 DCXXI 를 숫자로 바꿔보자.D는 500, C는 100, X는 10, I는 1이다. 각 글자별로 배열에 저장하면 다음과 같다. 문자D C X X I 값500 100 .. 2017. 12. 13.
반응형