본문 바로가기

분류 전체보기28

[백준] 20058 마법사 상어와 파이어스톰 - 자바 https://www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 👀 풀이 배열 회전과 BFS를 사용해서 풀이했습니다. 파이어스톰 시전 시 1. 2^L * 2^L 크기의 격자들로 나눈 후 시계방향 90도 회전 2. 인접한 얼음 확인 후 얼음 3개 미만 시 얼음-1 파이어스톰 다 끝난 후 3. 남아있는 얼음 합 구하기 4. 가장 큰 덩어리 크기 구하기 (BFS) [배열 회전 함수] public static void rotate() { for (.. 2022. 4. 9.
[ORACLE] MERGE SQL 사용해보기 (MySQL로 흉내) 👀 SQL MERGE문이란? 조건에 따라서 INSERT를 하거나 UPDATE, DELETE를 하는 SQL 구문입니다. MERGE문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능합니다. 오라클 DB를 사용하며 테이블에 데이터를 삽입할 때 이미 해당 데이터가 존재하면 값을 UPDATE하는 로직이 필요했는데 MERGE 구문을 알게 되어 쿼리 하나만을 사용해 해결할 수 있었습니다.! 👀 MERGE문의 기본적인 형식은 다음과 같습니다. MERGE INTO [UPDATE되거나 INSERT 될 테이블] USING [MERGE를 진행하고 싶은 대상, 조인, 서브쿼리도 사용 가능] ON [조건] WHEN MATCHED THEN [조건에 맞는 데이.. 2022. 4. 9.
Sync / Async, Block / Non-block 차이점 Sync, Async와 Block, Non-block이 얼핏 보면 비슷해보여 계속 헷갈려서 정리한다.. ✔ Sync / Async - 호출된 함수의 완료 여부를 누가 신경쓰는가 Synchronous 호출된 함수의 수행 결과 및 종료를 호출한 함수가 신경씀 호출한 함수가 호출된 함수의 작업이 끝나서 결과값을 반화하기를 기다리거나, 지속적으로 호출된 함수에게 확인 요청 Asynchronous 호출하는 함수가 호출된 함수의 완료 여부를 신경쓰지 않음 호출된 함수의 수행 결과 및 종료를 호출된 함수 혼자 직접 신경 쓰고 처리함(callback) ✔ Block / Non-block - 호출된 함수가 바로 제어권을 넘기는가 Block 호출된 함수가 자신이 할 일을 모두 마칠 때까지 제어권을 계속 가지고서 호출한 함.. 2022. 1. 18.
Thread-Safe란 무엇일까? ✔ Thread-Safe 멀티 쓰레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 쓰레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다. 하나의 함수가 한 쓰레드로부터 호출되어 실행 중일 때, 다른 쓰레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 쓰레드에서의 수행 결과가 올바르게 나오는 것으로 정의한다. 멀티쓰레드 환경에서 동작해도 원래 의도한 형태로 동작하는 코드를 "Thread-Safe"하다고 한다. ✔ Thread-Safe 보장 방법 Re-entrancy 어떤 함수가 한 쓰레드에 의해 호출되어 실행 중일 때, 다른 쓰레드가 그 함수를 호출하더라도 그 결과가 각각에게 올바로 주어져야 한다. Thread-local storage 공유 자원의 사용을 최대.. 2022. 1. 17.