환경Java : 1.8 (회사 환경에 맞추다보니..)Go : 1.21.5gcc : 10.2.1OS : debian bullseye 본문Golang 함수 작성하기mkdir golangcd golanggo mod init main slice의 합을 구하여 반환하는 간단한 함수를 만들었다. (main.go)package mainfunc main() { // do nothing..}func sum(data []float64) float64 { var result float64 = 0 for _, v := range data { result += v } return result}Java 코드 작성하기public class Main { public static native double golangSum(do..
문제 public class Quiz { public static void main(String[] args) { System.out.println("Hello, World!"); } } 위 코드에서 main 메서드를 수정하지 않고(접근제어자, 메서드본문 등 모두 수정 불가) GoodBye, World! 만이 출력되도록 하는 방법은? (Hello, World!는 출력되면 안됨) 정답 더보기 public class Quiz { static{ System.out.println("Goodbye, World!"); System.exit(0); } public static void main(String[] args) { System.out.println("Hello, World!"); } } static 블록을 ..
개요 이분탐색은 구현 시 늘 헷갈린다. 그래서 관련 자료를 찾던 중 아래 글을 보게 되었고, 내용을 정리한다. https://www.acmicpc.net/blog/view/109 이분 탐색(Binary Search) 헷갈리지 않게 구현하기 개요 이분 탐색은 off-by-one error가 발생하기 쉬워서 늘 헷갈립니다. 이분 탐색 문제를 풀다보면 탈출 조건으로 lo
문제import java.util.*;public class Q6 { public static void main(String[] args) { Random random = new Random(); int[] array = new int[100000]; for (int i = 0; i A와 B에서 출력되는 값(반복문 수행시간)은 유사한가? 아니면 유의미한 차이가 있는가? 정답더보기B가 훨씬 빠르다.환경마다 다르겠지만, A는 2814ms, B는 488ms가 소요되었다. 순서를 바꿔서 정렬된 배열에 대해 먼저 반복문을 수행해도 마찬가지로,정렬된 배열의 반복이 훨씬 빠르다. 이는 Branch Prediction (분기 예측) 때문이다. 정렬된 데이터에 대..
개요 몇 년 전에 네트워크 강의를 수강하며 TCP와 UDP의 속도/손실률이 실제로 어느정도 되는지 궁금해졌다. TCP/UDP 서버와 클라이언트 코드를 작성해서 비교해봤었는데, 따로 포스팅하지 않고 자료만 가지고 있었다. 그러다가 최근, 모 기업의 자기소개서를 작성하면서 해당 실험을 언급하게 되었고, 과거의 자료를 찾아 블로그에 포스팅한다. 실험 환경 TCP/UDP에 대해 각각 로컬네트워크, AWS서울리전, AWS오하이오리전에서 테스트했다. 또, 패킷의 크기가 400B, 4KB, 40KB일 때 각각 실험하였다. 각 환경에서 10ms간격으로 1000번 패킷을 전송하였고, 3s 간격으로 세 번 반복하였다. (단, AWS환경에서 40KB패킷을 전송할 땐 100번만 전송하였다 ㅡ '결과 분석' 참고) AWS는 t..
. import java.util.Arrays; public class Main { public static void main(String[] args) { perm(0, 0, new int[]{1, 3, 5, 7}, new int[3]); System.out.println("---"); comb(0, 0, new int[]{1, 3, 5, 7}, new int[3]); } static void perm(int cnt, int mask, int[] arr, int[] perm) { if (cnt == perm.length) { System.out.println(Arrays.toString(perm)); return; } for (int i = 0; i < arr.length; i++) { if ((mas..
문제 class Q5 { static Integer value = 0; public static void main(String[] args) throws InterruptedException{ Runnable r = () -> { for (int i = 0; i < 100000; i++) { synchronized (value) { value++; } } }; Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println("value = " + value); } } 이 출력값은 200000인가? Hint: 문제 2번과 유사하다. ( https://blog...
문제A class Q4 { static { System.out.println("1"); } public static void main(String[] args) { System.out.println("2"); } static class SubQ4 { static { System.out.println("3"); } } } 출력값은 무엇인가? 문제 B class Q4 { static { System.out.println("1"); } public static void main(String[] args) { System.out.println("2"); SubQ4.value++; } static class SubQ4 { private static int value = 123; static { System.out..