본문 바로가기

분류 전체보기72

[백준] C++ 2257번 화학식량 문제 https://www.acmicpc.net/problem/2257 2257번: 화학식량 첫째 줄에 화학식이 주어진다. 화학식은 H, C, O, (, ), 2, 3, 4, 5, 6, 7, 8, 9만으로 이루어진 문자열이며, 그 길이는 100을 넘지 않는다. www.acmicpc.net 접근 방법 괄호로 무언가를 계산하는 문제의 해결방법 중에 하나는 스택을 이용하는 것이다. int를 원소로 하는 스택을 선언하여 문제를 접근하였다. H, C, O일 경우는 1, 12, 16을 push 하였다. '('가 입력으로 올 때에는 그냥 push를 하면 '('의 아스키코드인 40이 push가 되기 때문에 오류가 생길 수 있어 사용될 일이 없는 값인 -1로 push를 하였다. ')'가 입력으로 올 때는 '('가 나올 .. 2023. 2. 4.
[백준] C++ 1074번 Z 문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 접근 방법 주어진 배열을 좌표라 생각을 하면 4개의 사분면으로 나눌 수 있다. 어느 사분면에 따라 앞서 방문해야 할 칸의 개수가 달라진다. 좌표가 3사분면에 있다고 가정할 때, 1사분면과 2사분면의 모든 칸들을 방문하여야 한다. 앞서 방문해야 할 칸들의 값을 모두 더하고, 현재 좌표가 위치한 사분면을 기준으로 다시 4등분을 하여 n=1이 될 때까지 반복으로 수행하였다. 코드 #inc.. 2023. 2. 3.
[백준] C++ 17219번 비밀번호 찾기 문제 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 접근 방법 map을 사용하여 사이트 주소와 비밀번호 쌍을 저장하였다. key를 사이트 주소로, value를 비밀번호로 저장하여 원하는 사이트 주소의 비밀번호를 찾을 수 있게 하였다. 코드 #include #include #include using namespace std; int n, m; string site, password; map text; int mai.. 2023. 2. 2.
[백준] C++ 1620번 나는야 포켓몬 마스터 이다솜 문제 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 접근 방법 map을 이용하면 간단하게 해결할 수 있다. map에는 포켓몬 이름과 번호를 한 쌍으로 저장하고, 배열에는 번호 순서에 따라 포켓몬 이름을 저장했다. 입력이 이름으로 주어질 경우는 map의 find함수를 통해 번호를 알아내고 입력이 번호로 주어질 경우는 배열을 인덱스로 접근하여 이름을 알아내었다. 주어진 입력이 문자인지 숫자인지는 isdigit 함수를 .. 2023. 2. 1.
[백준] C++ 1012번 유기농 배추 문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 접근 방법 인접한 배추들을 모두 탐색하는 것이므로 DFS, BFS로 문제를 접근하였다. 밭의 최대 크기가 50 *50이므로 이 크기의 이차원 배열을 선언하여 입력을 받았다. 모든 땅에 대해서 DFS를 수행하였는데 그 땅을 이미 방문하였는지에 대한 여부는 DFS를 시작한 땅의 값을 0으로 바꿔 땅의 값이 1인 경우에만 DFS를 진행하게 하였다. 땅의 상하좌우를 체크하여 모든 인접한 부분에 대해 DFS를 진.. 2023. 1. 31.
[DB] 트랜잭션(Transaction) 트랜잭션 트랜잭션이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 쉽게 말하면 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해 주는 것을 뜻한다. 만약 A에서 B로 계좌이체를 한다고 할 때 두 가지 작업이 하나의 작업처럼 동작해야 한다. A의 잔고를 5000원 감소 B의 잔고를 5000원 증가 데이터베이스가 제공하는 트랜잭션 기능을 사용하면 1,2 둘 다 함께 성공해야 저장하고, 중간에 하나라도 실패하면 거래 전의 상태로 돌아갈 수 있다. 트랜잭션 ACID 트랜잭션은 ACID라 하는 원자성(Atomicity), 일관성 (Consistency), 격리성(Isolation), 지속성(Durab.. 2023. 1. 28.