IT 137

[CodeUp] 3130 : 소들의 헤어스타일

[문제] package day093;public class Test01 { public static void main(String[] args) { int N = 6; int[] datas = {10, 3, 7, 3, 12, 2}; int result = 0; // 1. 누적 값을 그대로 사용하여 마지막에 출력까지 하는 방식 // 간편하다. for(int i =0; i [성능 개선 시]import java.util.Stack;public class Test02 { public static void main(String[] args) { int N = 6; int[] datas = {10, 3, 7, 3, 12, 2}; int result = 0; Stack stack = new Sta..

IT/코딩테스트 2025.06.08

트리 용어 정리

1. [ 트리 ]“데이터 사이의 계층 관계를 나타내는 자료구조”■ 트리를 구성하는 요소로는 노드(node), 가지(edge)가 있음2. [ 루트 ]트리의 가장 윗부분에 위치하는 노드. 하나의 트리에는 하나의 루트만 있다.3. [ 리프 ]트리의 가장 아랫부분에 위치하는 노드. 노드가 더 이상 뻗어나가지 않는 마지막에 위치함4. [ 안쪽 노드 ]리프를 제외한 나머지 노드(루트 포함)5. [ 자식 ]어떤 노드에서 가지로 연결된 아래쪽 노드. 노드는 자식을 여럿 가질 수 있음6. [ 레벨 ]루르로부터 얼마나 떨어져 있는지를 나타낸 값. 루트의 레벨은 0으로, 루트에서 가지가 하나씩 아래로 뻗어갈 때마다 레벨 +17. [ 차수 ]노드가 갖는 자식의 수(degree). 모든 노드의 차수가 n 이하인 트리를 n진 트..

[CodeUp] 3117 : 0은 빼!

작성한 한글 코딩스택 라이브러리 import 랜덤 객체 생성 횟수를 담을 변수 선언 K(횟수 값)로 위 변수 초기화 합을 저장할 변수 선언 스택 객체 생성 for문으로 k만큼 반복하면서 0부터 100 사이의 수를 무작위로 입력받음 (만약 0이 나오면) { n-1번째 정수를 pop } 0이 아니면 { 연달아 스택에 push함 } (스택이 비어있지 않다면) { 스택을 돌면서 모두 꺼냄 모든 정수의 합을 더함 } sout(정수 합);}해당 한글 코딩에는 랜덤 생성해놨는데 코드업 돌리니까 자꾸 출력결과 다르다고 틀려서 정수 K개만큼 입력받는 걸로 수정 작성한 코드package stack;import java.util.Scanner;import java.util.Stack;public class ..

IT/코딩테스트 2025.06.05

스택(Stack)

[Stack(스택)]→ 데이터를 일시적으로 보관하는(==쌓아놓는) 자료구조 특징LIFO (후입선출) → 마지막에 넣은 데이터를 가장 먼저 꺼냄PUSH(넣기), POP(꺼내기)PUSH와 POP이 이루어지는 꼭대기를 top이라고 하고, 스택의 가장 아랫부분을 bottom이라고 한다.예시자바 프로그램에서 메서드를 호출하고 실행할 때 프로그램 내부에서 스택을 사용한다.해당 사진은 자바 프로그램에서 메서드가 호출될 때 순서에 따라 스택이 사용되고 있음을 알 수 있다. main() 먼저 실행되므로 main() 먼저 pushmain() 안에서 z()를 호출하므로 z() push,z() 안에서 x(), y() 순대로 호출하므로 x() push했다가 pop, y() push했다가 popx, y가 모두 호출되고 끝나면 ..

[프로그래머스] 수박수박수박수박수?

문제한글 코딩홀수이면 수로 끝나게 출력 (n%2)만큼 수박 출력하고 + 수 한글자 추가 짝수이면 박으로 끝나게 출력 (n%2)만큼 수박 출력하고 int n = 11 일때, (n%2) == 0이면 { sout("수박")*2; } 아니면 { sout("수박")*2 + "수"; }내가 작성한 코드class Solution { public static void main(String[] args) { int n = 11; String result = solution(n); System.out.println(result); } public static String solution(int n) { String answer = ""..

IT/코딩테스트 2025.06.03

[프로그래머스] 올바른 괄호

문제 한글 코딩스택 선언 for(n[0]부터 문자열 길이만큼 순환하면서) { 만약 equals "("이면 { 스택에 저장하고 } 아니면 { // ")" 가 나올 때 스택에서 "("를 꺼낸다. } 만약(스택이 비어있다면) { return true하고 } 아니면 // 스택에 (가 들어있으면 return false;한다.작성한 코드public static boolean solution(String s) { boolean answer = true; Stack stack = new Stack(); for(int i =0; i고려한 점 1. 자바에서 스택구조 구현하기 java.util.Stack 클래스가 내장되어 있으므로 import하여 사용하기Stack stack = ..

IT/코딩테스트 2025.06.02

[DB] Row Lock과 Table Lock

DB락 : DB에서 동시에 여러 사용자가 데이터를 처리할 시 데이터 무결성과 경쟁 조건 방지를 위해 락을 사용함.→ 크게는 Row Lock, Table Lock으로 나뉜다. 1. Row Lock (행 단위 잠금) : 데이터 테이블에서 특정 행만 잠그는 방식- 이 행을 제외한 나머지 행에 대해서는 사용자가 자유롭게 작업 가능 ■ 장점1) 병행 처리 효율적 : 동시에 여러 트랜잭션이 다른 행을 수정 가능2) 데이터 충돌 최소화3) 큰 테이블에서도 최소한의 락 범위 ■ 단점 1) 락을 관리하는 오버헤드가 커짐2) 데드락 발생 가능성이 높아진다. ■ 예시 -- 특정 회원의 정보만 업데이트 (해당 행만 락)UPDATE member SET name = '홍길동' WHERE member_id = 1001;2. Ta..

IT/DB 2025.05.31

[Network] Brute-force 공격이란?

비밀번호 암호화를 공부하면서 암호화 알고리즘을 공부하게 되고,, 점점 파다가 알아본 해킹 방식들에 대해 정리하고자 한다.Brute-force 공격이란? Brute-force 뜻 = 무작정 "힘으로 밀어붙이는 방식" 모든 가능한 비밀번호 조합을 하나하나 대입해서 맞힐 때까지 시도하는 공격을 의미한다. → BCrypt는 해당 공격에 강하다. 왜냐하면 암호화 속도가 느리게 설계되었기 때문이다.Brute-force 공격은 모든 조합을 하나하나 대입해서 맞힐 때까지 시도해야 하기 때문에 빠르게 여러 값을 대입하여 해킹을 시도한다. 그러나 BCrypt의 암호화 속도가 느리기 때문에 해커가 수천 번 시도하는 것이 시간/비용 증가로 인해 현실적으로 힘들다. 즉, 연산을 일부러 느리게 만들어 공격 비용을 현실적으로 어..

IT/CS 2025.05.29

[CS지식] 인터넷과 네트워크

※ 인터넷과 네트워크 네트워크 + 네트워크 = 인터넷 인터넷: 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크 PAN, LAN, MAN, WAN, 5G/4G ※ 프로토콜이란? :  TCP, UDP, IP, HTTP, SMTP, FTP, OSPF, BGP ※ 계층(layer) 응용계층, 전송계층, 네트워크계층, 링크계층, 물리계층 ※ 네트워크 구성 라우터, 스위치, NIC, 프록시 서버, 공유기 ※ 네트워크 알고리즘  라우팅 알고리즘 ※ 원하는 정보를 웹 서버로부터 가지고 오는 방법 웹 브라우저, DNS ※ 웹 서버로부터 웹 페이지를 가져오려면?① 내 컴퓨터에 웹 브라우저가 설치되어 있어야 한다.크롬, 익스플로러, 사파리 등 ② 내 컴퓨터가 네트워크(인터넷)에 접속해 있어야 한다.접속망..

IT/CS 2025.05.21