Algorithm & Data Structure

    [HackerRank] SQL 문제

    [HackerRank] SQL 문제

    The STATION table is described as follows: 문제 1. weather-observation-station-3 link Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer. where LAT_N is the northern latitude and LONG_W is the western longitude. 풀이 중복되지 않는 결과를 output하기 위해서는 SELECT 뒤에 DISTINCT를 붙입니다. SELECT DISTINCT CITY FROM STATION..

    [JAVA] baekjoon 2447 별 찍기-10

    [JAVA] baekjoon 2447 별 찍기-10

    문제 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 이 문제는 재귀로 생각하는 것도 어려웠지만 공백과 별 찍는 것을 어떻게 채워나가야할지 규칙을 찾는 것이 힘들었다. 이해한 것을 기반으로 글을 작성해보려한다. 나의 풀이 입력으로 받는 N은 3의 거듭제곱(3, 9, 27, 81..)인데, 재귀적으로 패턴이 존재한다고 한다. 바로 아래와 같이 가운데 공간이 비어있는 패턴이다. *** * * *** 키워서 9X9인 크기로..

    [JAVA] baekjoon 1891 사분면

    문제 https://www.acmicpc.net/problem/1891 1891번: 사분면 첫 줄에 이동시키려는 사분면 조각 번호의 자릿수를 나타내는 정수 d와, 그 사분면 조각의 번호가 주어진다. (1 ≤ d ≤ 50) 둘째 줄에는 이동의 내용을 나타내는 두 정수가 x, y가 주어진다. (|x|, |y| www.acmicpc.net 나의 풀이 1. 주어진 사분면 정보를 기반으로 위치 (row, column) 찾는다. 2. 찾은 위치를 이동시키고 범위를 확인한다. - 범위가 벗어나면 -1을 출력하고 종료한다. 3. 이동한 위치의 사분면을 찾는다. 코드 뜯어보기 초기화 및 입력을 받는 코드입니다. 저는 변수 d를 이용해서 한 변의 길이를 의미하는 size 변수를 미리 할당해놓았습니다. d는 최대 50까지 ..

    [JAVA, 백준] 16947. 서울 지하철 2호선

    문제는 아래 링크를 참고해주세요. https://www.acmicpc.net/problem/16947 16947번: 서울 지하철 2호선 첫째 줄에 역의 개수 N(3 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N개의 줄에는 역과 역을 연결하는 구간의 정보가 주어진다. 같은 구간이 여러 번 주어지는 경우는 없고, 역은 1번부터 N번까지 번호 www.acmicpc.net 더보기 문제 풀 때 기억하기 술술 풀린 문제보다 술술 풀리지 않은 문제에 집중한다. 문제 풀 때 지키기 1. 30분 타이머를 재고 고민한다. 2. 고민할 때는 주석 혹은 필기를 하며 본인 생각을 정리한다. 3. 30분이 지나고도 아이디어가 떠오르지 않으면 다른 사람 풀이를 찾아본다. 4. 오답노트 적듯이 나의 전개와 다른 점을 찾아서 부..

    [Concept/Algorithm] 이분/이진 탐색 (Binary Search)

    이분 탐색 알고리즘은 정렬된 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법입니다. 이분 탐색 알고리즘은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘입니다. 변수 3개 시작, 끝, 중간 값(start, end, mid)을 사용하여 탐색합니다. 찾으려는 target과 중간 위치 값 mid를 반복 비교하여 원하는 데이터를 찾아가는 과정입니다. 시간복잡도는 단계마다 범위를 절반으로 줄여나가므로 O(logN) 입니다. ex) 32개 데이터-> 16개 데이터-> 8개-> 4개 이분 탐색은 반복문과 재귀 호출 방식으로 구현할 수 있습니다. public classBinary_Search { //재귀 호출 방식으로 구현 private static intbinary_search_recu..

    [JAVA] 프로그래머스 - 행렬 테두리 회전하기 LV2

    [JAVA] 프로그래머스 - 행렬 테두리 회전하기 LV2

    문제는 아래 링크를 통해 확인해주세요. 조건 rows, columns가 주어지면 규칙에 맞게 matrix를 초기화한다. (+1씩 증가하는 규칙! i행 j열의 수는 ((i-1) x columns + j) 이라는 규칙이 있다고 지문에 나와있기도 한다.) rows와 columns는 2 이상 100 이하 queries의 각 행은 [x1, y1, x2, y2]로 이루어지고, 행(회전)의 개수는 1 이상 10,000 이하 x1과 x2는 1 이상 rows 이하, y1과 y2는 1 이상 columns 이하 회전을 한 값들 중 최솟값을 구하여 배열에 담아야 한다. 시계방향으로 회전한다. 회전 시 테두리의 값들만 변화가 있다. 시작위치(왼쪽 위)는 x1, y1이고 끝(오른쪽 아래) 위치는 x2, y2이다. 설계 1. 좌측..