compareTo는 두 가지로 나뉜다. 1. 숫자 비교 2. 문자 비교 우선 숫자 비교부터 해보겠다. 아래 실행 결과처럼 기준 숫자 10을 가지고 4,10,12와 비교를 수행하면, 각각 1,0,-1을 확인할 수 있다. 이렇게 숫자형은 간단하게 숫자의 대소가 확인이 가능하다. 그렇다면 문자는 어떻게 될까? 아래 사진처럼 str이 "abc"이고, 비교 대상 문자들이 str의 구성요소를 포함하고 있다면, 길이를 비교하여 값을 리턴해준다. 여기서 매우 중요한 사실이 있다. 위의 예시 같은 경우 비교 문자들이 str의 앞부분은 같다는 것을 알 수 있다. 그렇다면 아예 다른 'c'부터 시작하는 문자로 비교해보면 어떻게 될까? 결과는 아래 사진처럼 -2가 출력된것을 확인할 수 있다. 그 이유로는 compareTo는 ..
문제 출처: https://www.acmicpc.net/problem/17836 17836번: 공주님을 구해라! 용사는 마왕이 숨겨놓은 공주님을 구하기 위해 (N, M) 크기의 성 입구 (1,1)으로 들어왔다. 마왕은 용사가 공주를 찾지 못하도록 성의 여러 군데 마법 벽을 세워놓았다. 용사는 현재의 가지고 있는 www.acmicpc.net 3차원 배열을 통해 검을 먹었을 때와 아닐 때를 구분해야 한다. 최단시간이고 N, M, T의 범위가 크므로 BFS탐색을 선택. 매번 이동할 때마다 검을 가지고 있는지 없는지를 확인 다음 좌표가 벽인 경우 검을 가지고 있는 경우 → 3차원 배열 체크 후 이동 검을 가지고 있지 않는 경우 → 이동 불가 다음 좌표가 길(==0) 일 경우 방문 체크하고 Queue에 넣는다. ..
문제 출처: https://www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 간단히 해결할 수 있는 B3문제인 줄 알았지만 은근 많이 헤맸다.. 물론 문제를 제대로 읽지 못한 부분도 있지만 공식을 다시 생각해내랴 등등 머리가 복잡해졌다. 풀이로 들어가서, 두 가지 풀이 방식이 있다. 8진수 → 10진수 → 2진수로 할 것인가, 아니면 바로 8진수 → 2진수로 할 것인가. 솔직히 10진수로 바꿔서 다시 2진수로 나타낸다는 방식은 생각해내지 못했고 바로 2진수로 변환하는 방식을 선택했다. 초기 의사 코드는, 1. 각 자릿수를 하나씩 분리 2. 자릿수를 2번씩 나머지를 구..
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 좌측 최상단에서 우측 최하단까지 가면 되는 간단한 BFS 탐색 문제이다. 단순히 가는길을 방문 체크해주고 진행하면 해결할 수 있다.