java38 Java, Python, TypeScript, Go 언어 preprod, prod환경 Assertion 활용 방법 1. 개요Assertion은 코드가 예상대로 동작하는지 확인하는 데 사용되는 도구로, 주로 개발 및 테스트 단계에서 코드의 논리를 검증하는 데 사용됩니다. 하지만 운영 환경에서는 Assertion이 성능에 영향을 미칠 수 있기 때문에 사용을 피하거나 비활성화하는 것이 일반적입니다. 이 글에서는 Java, Python, TypeScript, Go 언어에서 개발(develop), 스테이징(stage), 운영(production) 환경에 따라 Assertion을 어떻게 효과적으로 사용할 수 있는지 살펴보겠습니다.2. Java에서 Assertion 사용 방법2.1 개발 환경에서의 Assertion개발 환경에서는 Assertion을 활성화하여 코드의 논리적 오류를 쉽게 발견할 수 있습니다. 다음은 자바에서 Ass.. 프로그래밍공부(Programming Study) 2024. 8. 28. 자바답게 프로그래밍하기 전날 귀인을 뵙고 난 뒤의 많은 화두가 던져졌지만, 그중 먼저 꽂힌 부분은 "자바를 자바답게 사용한다는 것은 무엇일까?"였다. 혹시 자바 잘 사용하시나요? 어느정도 쓰시나요? 해당 물음에 본인은 중언부언 설명을 이어나갔으나 결국은 나의 답변은 자바를 잘 사용하지 못하고 있다는 것이었다. 이 물음에 대한 답을 하기 위해서 1. 자바(특정 프로그래밍 언어)가 무엇인지 아나요? 2. 자바(특정 프로그래밍 언어)를 사용한다는 것이 무엇인지 아나요? 3. 자바(특정 프로그래밍 언어)를 잘 사용한다는 것이 무엇인지 아나요? 4. 그렇다면 본인은 자바(특정 프로그래밍 언어)를 어느정도 사용하시나요? 에 대해 답을 해야했기 때문에 중언부언 말을 이어나갔던 것 같다. 사실 이 물음은 자바(특정 프로그래밍 언어) 부분을 .. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 10. 31. [JAVA] W3C school java tutorial 정리 1. 배경 모던 자바 인 액션으로 자바 8 이후의 문법 변화에 대해 익히던 도중 자바의 기본 문법에 대해 복습할 필요성을 느낌 2. 아이디어/방안 다시 자바 기본 문법 공부하지 않고 모던 자바 인 액션 1회독 자바의 정석 필요한 부분 발췌독 전체 1회독 W3C school Java tutorial 필요한 부분 발췌독 전체 1회독 3. 채택아이디어 및 이유 3.2. W3C school Java tutorial 전체 1회독 다른 방안에 비해서 시간이 적게 들고 deep하게 공부하기 보다 간략한 개념을 환기시키기 좋아보임 https://www.w3schools.com/java/default.asp Java Tutorial W3Schools offers free online tutorials, reference.. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 10. 20. [Java] String vs String Builder vs String Buffer https://ifuwanna.tistory.com/221 [Java] String, StringBuffer, StringBuilder 차이 및 장단점 Java 에서 문자열을 다루를 대표적인 클래스로 String , StringBuffer, StringBuilder 가 있습니다. 연산이 많지 않을때는 위에 나열된 어떤 클래스를 사용하더라도 이슈가 발생할 가능성은 거의 없습니다 ifuwanna.tistory.com 끄적끄적(Memo)/레퍼런스(reference) 2022. 9. 10. 백준 1916 java - 최소비용 구하기(다익스트라 알고리즘) 전형적인 다익스트라 문제이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Array; import java.util.*; public class Boj_1916_최소비용구하기 { public static void main(String[] args) throws IOException { PriorityQueue pq = new PriorityQueue(new Comparator() { @Override public int compare(int[] o1, int[] o2) { return o1[1] - o2[1]; } }); BufferedReader br .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 7. 15. 백준 1238 java - 파티(다익스트라) 해당 문제는 다익스트라 N번 또는 2번으로 풀 수 있는 문제이다. 1. N번 돌리는 경우에는 A -> X로 가는 경우 N-1번, X->A가는 경우 1번 해서 N번 돌리면 된다 2. 2번 돌리는 경우에는 X -> A로 가는 경우 1번과 간선을 반대 방향으로 저장한 간선리스트로 1번 다익스트라를 돌리면 된다. 3. 2번 다익스트라를 돌리는 경우가 가능한 이유는 X에서 다른 노드에 가는 경우는 이해가 되겠지만 간선리스트를 반대방향으로 저장한 경우 특정 노드에서 X로 가는 길이가 바로 A -> X로 가는 경우 N-1번과 동치이기 때문이다. package 다익스트라; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 7. 3. 백준 1865 java - 웜홀(벨만 포드 알고리즘) 해당 문제는 벨만포드 알고리즘을 사용하는 문제이다. 본인은 벨만 포드 알고리즘을 알고 있지 않아서 약 2시간 30분만의 사투 끝에 구글링을 통해 공부하여서 맞췄다... 맞췄다기 보다 맞춤당했다. 핵심은 음수 사이클 판별하는 알고리즘으로 벨만포드를 사용할 수 있다는 점이다. 풀이법은 따로 남기지 않고 동빈나님 강의를 링크로 달아두겠다! https://www.youtube.com/watch?v=Ppimbaxm8d8 package 그래프_DFS; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStre.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 6. 30. 백준 1918 java - 후위 표기식(자료구조-스택) 해당 문제는 예~전에 SWEA에서 풀었던 건데 오랜만에 푸니까 시간이 좀 걸렸다... 알고리즘은 꾸준히! 뭐든지 꾸준히 ㅎ는 게 생명이다! 1. 연산자 우선순위 할당 2. 연산자 stack 생성 3. 숫자는 바로 출력 4. 연산자 우선순위 비교 후 낮은 걸 만나거나 더이상 쌓을 연산자가 없으면 pop 5. 괄호 처리 - ( 일때는 stack에 push해 두고 )를 만나면 ( 전까지의 모든 연산자를 pop package 자료구조; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class boj_1918_후위표기식 { public st.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 6. 29. 백준 24416 java - 피보나치 수1(동적계획법/DP) 백준 단계별로 풀기에서 동적계획법1이 all solve이었는데 갑자기 한 문제가 추가 되어서 풀게 된 문제이다. 브론즈 1이지만 DP의 효율성을 알 게 해주는 아주 귀중한 문제이다. 수도 코드가 이미 있어서 따라 치기만 해도 된다. package 동적계획법; import java.util.*; import java.io.*; public class Boj_24416_알고리즘수업_피보나치 { static int a, b, dp[]; public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); dp = new int[n+1]; dp[1] = 1; dp[2] = 1.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 6. 17. 백준 1707 java 이분그래프 (그래프) 이분그래프에 대한 정의를 이해 하지 못해서 한 1주일 정도는 그냥 바라본 문제다. 답지를 보기에는 골드4라는 티어 때문에 용납이 되지 않았고 금방 풀 수 있을 것 같아서 뚫어져라 쳐다 봤다. 결국 두색 칠하기 문제로 귀결되는 듯 보였다. 1. 인접한 두 수는 다른 색, 다른 숫자, 다른 그룹으로 짝지어 질 수 있는가 2. 그렇다면 조합으로는 안되나? => 조합으로는 시간 복잡도가 터질 수 있음 3. dfs 또는 bfs를 돌리며 색칠해 나가다가 인접한 정점이 같은 색깔 또는 같은 숫자인지를 보면 되겠구나 4. 간선이 연결되지 않은 정점들은 어떻게 처리하지? 5. 간선이 연결되지 않은 정점들은 또 dfs 또는 bfs를 돌리면서 집합을 두 집합으로 만들면 되겠구나! 1번 집합 2번 집합이 나오면 3번 집합/4.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 6. 15. 백준 7569 java - 토마토(그래프/bfs) 해당 문제는 3차원 배열의 6방 bfs문제이다. 딱히 다른 bfs문제와 별다를게 없으므로 바로 해설 들어간다. 1. 토마토가 익었을 경우 1, 날 것일 경우 0, 썩었을 경우 -1 2. H, M, N은 각각 상자의 층수, 상자의 가로칸, 세로칸 크기이다. 3. 익은 토마토는 그 다음차례에 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향의 토마토에 영향을 주어 익게한다. 4. 답 출력에 두 가지 방법이 떠올랐다. - 미리 익지 않은 토마토를 세서 bfs 돌린 후 최종적으로 익은 토마토와 익지 않았던 토마토의 갯수가 같으면 다 익은 것이므로 일수 출력 아니면 -1 출력 - bfs를 돌린 후 익지 않은 토마토가 있나 확인 후 없으면 일수 출력 아니면 -1 출력 5. 처음부터 싱싱한 토마토가 없는 경우에는 1을.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 5. 30. 백준 1637 java - 날카로운 눈(이진탐색, 누적합, 정수론/feat.생애첫플레 1솔) 해당 문제는 결국 구선생님의 힘을 빌어서 풀게 되었으나 그래도 나만의 방식으로 풀어냈다. 이진탐색 + 누적합 + 정수론의 조합이기 때문에 좀 까다로웠다. 정수론이라고 치기에 애매하긴 하지만... 생애 첫 플레티넘 문제 1솔을 했다!! 1. 이진탐색(매개변수탐색)은 결국 순서대로 탐색하기 + 단절점 찾기가 핵심이다. 2. 일단 탐색할 값을 뭐로 할 지 정해야하는데 입력값중 압도적으로 큰 21XXXXX이 있어서 탐색값은 1 (C - A) / B + 1 의 누적합이 짝수인 경우에는 무조건 NOTHING일 수밖에 없다 왜냐하면 홀수개인게 하나고 나머지가 짝수이므로 누적합이 짝수인 경우에는 무조건 홀수가 없다는 뜻이기 때문이다. 5. 정답을 출력할 때는 홀수 개가 존재하는 특정 숫자에다가 그 숫자의 갯수를 출력해.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 5. 29. 이전 1 2 3 4 다음 728x90