전체 글376 [Java] 예외 클래스 프로그램에서 오류란? 프로그램에서 오류가 발생하는 상황은 두가지이다. 하나는 프로그램 코드 작성 중 실수로 발생하는 컴파일 오류(compile error), 다른 하나는 실행 중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 실행 오류(runtime error)가 있다. 컴파일 오류는 개발 환경에서 찾을 수 있지만, 실행 오류는 프로그램 실행 중에 발생하기 때문에 예측하기 어려울 뿐더러, 프로그램이 비정상 종료되면서 멈춰 버린다. 실제 서비스를 제공하는 경우 오류가 생기면 서비스가 중지되므로 문제가 심각해지기 때문에 로그(log) 분석을 통해 원인을 찾을 수 있도록 개발 시 고려해야할 사항이다. 오류(error)와 예외(exception) 실행 오류는 크게 두가지가 있다. JVM(Java .. 2023. 3. 1. [BaekJoon] 백준 알고리즘 14888번 / 연산자 끼워넣기 / 백트래킹 / Python """ 1. 아이디어 - 연산자의 갯수만큼 재귀함수 호출 2. 시간복잡도 - N! 3. 자료구조 - n개의 자연수 저장 : [] - 연산자 저장 : [] """ import sys n = int(input()) value = list(map(int, input().split())) calc = list(map(int, input().split())) maxValue = -(sys.maxsize) minValue = sys.maxsize sum = value[0] # 재귀함수 정의 def recur( index, sum, plus, minus, multi, div ): global maxValue, minValue # n개의 자연수가 조합되었다면( 연산자를 다 조합했다면 ) if index == n: ma.. 2023. 3. 1. [BaekJoon] 백준 알고리즘 15649번 / N과 M(1)/ 백트래킹 / Python """ 1. 아이디어 - 백트래킹 재귀함수 안에서, for문 돌면서 숫자 선택( 단, 방문여부 확인할 것 ) - 재귀함에서 M개를 선택할 경우 해당 조합 print 2. 시간복잡도 - 해당 문제는 중복없는 순열을 출력이므로, N이 10까지 가능 - 따라서 N! 가능. 3. 자료구조 - 조합 저장 int[] - 방문여부 체크 bool[] """ import sys input = sys.stdin.readline # 자연수 2개를 입력받는다. N, M = map(int, input().split()) # 자연수의 조합을 저장하는 리스트 rs = [] # 방문여부 체크를 저장하는 리스트 chk = [False] * (N+1) def recur( num ): # 전달받은 파라미터가 조합의 갯수라면 print 후.. 2023. 2. 28. [BaekJoon] 백준 알고리즘 1926번 / 그림 / BFS / Python """ 1. 아이디어 - 2중 for => 값 1 && 방문X ==> BFS - BFS 돌면서 그림 개수 + 1, 최대값 갱신 2. 시간 복잡도 - BFS : O(V+E) - V : 500 * 500 - E : 4 * 500 * 500 - V + E : 5 * 250000 = 100만 > 가능! 3. 자료구조 - 그래프 전체 지도 : input[][] - 방문 : bool[][] - Queue( BFS ) """ import sys input = sys.stdin.readline # n(세로), m(가로) 입력받는다. n, m = map( int, input().split() ) # 그림의 전체 지도를 n개의 list 생성 map = [list(map( int, input().split())).. 2023. 2. 27. [BaekJoon] 백준 알고리즘 2839번 / 설탕 배달 초기에 해당문제를 반복문으로 접근했다가 시간 초과로 인해서 코드를 싹 갈아 엎었다.. 아래 그림과 같이 입력받은 값을 정수 5로 나눈 값과 나머지값을 확인해서 접근했다. 그리디 알고리즘의 접근방법은 우선 큰 봉지로 묶는 것이라고 배웠다. 그래서 5로 나눴을 때 발생할 수 있는 경우를 5가지로 나눴고, 아래와 같이 3kg 봉지로 묶을 수 있다. 나머지 1의 경우를 잘 보면, 아래에 b5 - 1 - +2 라고 적어놨다. 이 말은 5kg 포장되어있는 것을 풀러서 3kg 봉지로 담는다는 의미이다. 각 케이스 별로 정리해 두었다. 자, 이제 코드를 보자 주의해야할 점은, 포장되어있는 봉지를 확인해야한다는 것이다.. 나머지가 있어서 포장되어 있는 봉지를 뜯어서 3kg로 그룹화 시켜야하는데.. 없으면 이는 나눌수 없.. 2023. 2. 24. [BaekJoon] 백준 알고리즘 2775번 / 부녀회장이 될테야 접근방법 해당 문제를 계차수열을 통해서 원수열의 일반항을 도출하려고 했으나, 해결되지 않았다. 따라서, 전체탐색으로 접근해야한다. 각 층의 호수를 보면 규칙이 보인다. 예를 들어, 5층 5호를 보면 ( 4층 5호 + 5층 4호 ) 의 합이다. 따라서 이 문제는 0층 1호 ~ 14호 까지 대입하고, 0층 정보를 통해서 값을 대입해야 한다. 우선 15, 15의 크기를 가지는 2차 배열을 하나 생성하자. 0층만 우선 대입하자. for문을 통해 i가 자동적으로 증가하니, 값을 대입할 수 있다. 각 층의 1호는 무조건 1이니, 조건문을 통해서 1을 넣고, 1 보다 크다면 바로 아래층, 같은 층의 전 호수를 더한 값을 대입하면 된다. import java.io.BufferedReader; import java.io.. 2023. 2. 24. [CS] TCP 연결이라는 착각 / 3-way-handshake 3 Way-Handshake 전송제어 프로토콜(TCP)에서 통신을 하는, 연결을 위해 주로하는 방법론이다. 서로 연결이 잘 되어있는지 확인하는 과정/방식이다. Client와 Sever에서 주고받는 데이터의 단위는 Segment 이다. 위 그림을 통해 알 수 있듯이 클라이언트가 하나의 데이터를 Server측으로 보내는데 이는 Segment이다. 또한, flag가 Syn(1000) 로 set 된 Segment이다. Client에서 데이터를 보내기 전부터, Sever측에서는 계속 Listen 하며, Segment가 오면 '누가 나랑 통신하자고 연락이 왔네?' 라고 판단한다. Sever 측에서는 응답을 잘 받았다는 의미로 받은 시퀀스넘버에 +1을 해서 1001번과 자신의 시퀀스넘버 4000번을 보낸다. Clie.. 2023. 2. 24. [BaekJoon] 백준 알고리즘 10250번 / ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모.. 2023. 2. 23. [BaekJoon] 백준 알고리즘 2869번 / 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 접근방법 필자는 이 문제를 등차수열의 일반항을 구해서 풀었다. 아래 그림을 보자 일수는 좌항 ( V - B ) / ( A - B )의 값 보다 같거나 커야 한다. 따라서, 무조건 올림하는 cei.. 2023. 2. 23. 이전 1 ··· 14 15 16 17 18 19 20 ··· 42 다음