-
문자열을 숫자로 (Integer) parseInt(String) VS valueOf(String)
문자열 -> 숫자 변환?? Java를 사용하다보면, 우리는 문자열을 숫자로 변환시켜야 하는 상황을 자주 마주합니다. 그럼 어떻게 하시나요? Java는 문자열->숫자 변환을 위해 2가지의 메소드를 제공하고 있습니다. 바로 Integer.valueOf 와 Integer.parseInt 입니다. String S = "123"; int A = Integer.parseInt(S); Integer B = Integer.valueOf(S); 코드에서 본 것처럼, 언뜻 같은 기능을 하는 2개의 메소드의 차이를 알아보려고 합니다. 이미 힌트를 보여준 것 같지만, 좀 더 자세히 알아보겠습니다. Integer.parseInt(String) Java API 정의 public static int parseInt(String ..
2022.01.17
-
[백준 Silver 3] 5397 키로거 - Java
문제링크 : https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 접근 과정 : 화살표로 인한 인덱스 변화에 주목하면서, 패스워드를 입력하면 된다고 생각 자료구조로, 연결리스트나 스택을 사용할 수 있을 것이라 생각 최근 ListIterator를 알게되었고, 연결리스트의 탐색에 필요한 비용을 줄여주기에 이를 사용!! vs 스택을 사용하는 경우도 비교해보았다. 소스 코드 및 결과 : package BOJ; /* 키로거 LinkedList + Li..
2021.12.18
-
[백준 Gold 4] 4179 불! - Java
문제링크 : https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 접근 과정 : https://rays-space.tistory.com/69 [백준 Gold 4] 5427 불 - Java 문제링크 : https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 rays-sp..
2022.01.12
-
[백준 Gold 3] 11812 K진 트리 - Java
문제링크 : https://www.acmicpc.net/problem/11812 11812번: K진 트리 첫째 줄에 N (1 ≤ N ≤ 1015)과 K (1 ≤ K ≤ 1 000), 그리고 거리를 구해야 하는 노드 쌍의 개수 Q (1 ≤ Q ≤ 100 000)가 주어진다. 다음 Q개 줄에는 거리를 구해야 하는 두 노드 x와 y가 주어진다. (1 ≤ x, y www.acmicpc.net 접근 과정 : 트리에서 부모 인덱스로 자식 인덱스를 계산하고, 자식 인덱스로 부모 인덱스를 계산하는 방식을 사용했다. 흔히 이진트리에서는 자식/2가 부모 인덱스가 되는 것처럼 이를 이용해 계산하려고 했다. 자식 인덱스를 보고 부모의 인덱스를 계산할 수 있는 방식이 필요했다. 나는 여려 계산 끝에, 부모 = (자식+K-2)/..
2022.01.03
-
[백준 Silver 1] 1309 동물원 - Java
문제링크 : https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 접근 과정 : 2차원 배열(zoo[][])을 선언하고, 2칸 모두 사자가 없는 경우 / 왼쪽칸에 사자가 있는 경우 / 오른쪽칸에 사자가 있는 경우로 경우의 수를 더했다 즉, Bottom-Up 방식으로 DP를 구현하였다. 소스 코드 및 결과 : package BOJ; /* 동물원 */ import java.io.*; public class BOJ1309 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedR..
2021.12.23
-
트랜잭션이 왜 필요할까?
1. 트랜잭션이 무엇인가요? 트랜잭션이란 DB의 상태를 변화시키는 하나의 논리적인 작업에 포함된 연산들의 집합입니다. DB의 상태를 변화시키는 작업은 일반적으로 하나의 작업으로 이루어지지 않습니다. 예를 들어, 은행계좌에서 금액을 이체하려 한다면, 1)A계좌의 잔액을 조회 2)A계좌의 잔액에서 이체할 금액을 빼고 저장 3)B계좌의 잔액을 조회 4)B계좌에 이제금액을 더한 뒤 저장 까지 몇가지의 과정들이 필요하고 이를 모두 합쳐 계좌 이체라는 하나의 작업단위를 구성합니다. 이렇듯 DB 상태 변화를 위한 작업에 포함된 과정(연산)의 집합을 트랜잭션이라고 합니다. 그리고 트랜잭션의 모든 과정의 수행 여부에 따라 Commit되거나 Rollback 됩니다.2. 트랜잭션의 성질에 대해 말해주세요. 트랜잭션의 성질은..
2021.05.17