프로그래머스 - 평균구하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class GetMean { public int getMean(int[] array) { int sum=0; for(int i=0;i<array.length;i++) { sum+=array[i]; } return sum/array.length; } public static void main(String[] args) { int x[] = {5, 4, 3}; GetMean getMean = new GetMean(); // 아래는 테스트로 출력해 보기 위한 코드입니다. System.out.println("평균값 : " + getMean.getMean(x)); } } 아래와 같은 방법이 있는데 java8부터 추가된 기능이다. 하지만 수행시간의 차이가 40~50배가 났다. ...

12월 23, 2017 · Jaejin Jang

프로그래머스 - 피보나치 수

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class Fibonacci { public long fibonacci(int num) { if(num==0) { return 0; } else if(num==1){ return 1; } else{ return fibonacci(num-1)+fibonacci(num-2); } } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { Fibonacci c = new Fibonacci(); int testCase = 3; System.out.println(c.fibonacci(testCase)); } } 다음에는 dp로 풀어봐야겠다. ...

12월 23, 2017 · Jaejin Jang

프로그래머스 - 하샤드 수

나의 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.util.Arrays; public class TryHelloWorld { public int getMinSum(int []A, int []B) { int answer = 0; Arrays.sort(A); Arrays.sort(B); for(int i=0;i<B.length;i++) { answer += A[i]*B[B.length-1-i]; } return answer; } public static void main(String[] args) { TryHelloWorld test = new TryHelloWorld(); int []A = {1,2}; int []B = {3,4}; System.out.println(test.getMinSum(A,B)); } } 문자열로 형변환 없이 풀어낸 코드 ...

12월 23, 2017 · Jaejin Jang

프로그래머스 - 행렬의 곱셈

머리속에서는 쉽지만 막상 구현하면 헷갈려서 잘 틀리는 행렬곱… 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class ProductMatrix { public int[][] productMatrix(int[][] A, int[][] B) { if(A[0].length!=B.length) return null; int[][] answer = new int[A.length][B[0].length]; for(int i=0;i<A.length;i++) { for(int j=0;j<B[0].length;j++) { for(int k=0;k<B.length;k++) { answer[i][j]+=(A[i][k]*B[k][j]); } } } return answer; } public static void main(String[] args) { ProductMatrix c = new ProductMatrix(); int[][] a = { { 1, 2 }, { 2, 3 } }; int[][] b = { { 3, 4 }, { 5, 6 } }; // 아래는 테스트로 출력해 보기 위한 코드입니다. System.out.println("행렬의 곱셈 : " + c.productMatrix(a, b)); }

12월 23, 2017 · Jaejin Jang

프로그래머스 - 행렬의 덧셈

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 class SumMatrix { int[][] sumMatrix(int[][] A, int[][] B) { int[][] answer = new int[A.length][A[0].length]; for(int i=0;i<A.length;i++) { for(int j=0;j<A[0].length;j++) { answer[i][j] = A[i][j]+B[i][j]; } } return answer; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { SumMatrix c = new SumMatrix(); int[][] A = { { 1, 2 }, { 2, 3 } }; int[][] B = { { 3, 4 }, { 5, 6 } }; int[][] answer = c.sumMatrix(A, B); if (answer[0][0] == 4 && answer[0][1] == 6 && answer[1][0] == 7 && answer[1][1] == 9) { System.out.println("맞았습니다. 제출을 눌러 보세요"); } else { System.out.println("틀렸습니다. 수정하는게 좋겠어요"); } } }

12월 23, 2017 · Jaejin Jang

2017 암호경진대호 3번

부채널 분석 문제인데요. 사전지식이 없는 쪽이라 마지막에 풀었는데 시간이 좀더 있었으면 했는데 아쉽네요. 푸신분 코드좀 주세용 matlab 코딩 실력이 좋았더라면..ㅜ 풀이: 참고문헌을 읽어 본 결과 CPA가 DPA에 보다 더 적은 샘플수로 분석이 가능 하다고 하여 전력 분석 중에서 CPA를 선택하였다. MSP430F2618보드의 경우 저전력의 특성의 IC로 CMOS구현되어 있다고 생각할 수 있었다. 그래서 Hamming Distance Model을 선택하였다. Hamming Distance Model에서 참고 되는 값은 보드에 구현된 ARIA의 소스코드를 분석하여 알 수 있었다. ...

12월 23, 2017 · Jaejin Jang

2017 암호경진대회 1번

알파벳으로 구성된 평문을 2개의 값으로 shift하는 key table로 암호화한 암호문이 주어졌을때 평문을 찾는 문제입니다. 소문제 1번은 경우 암호문길이가 길어서 풀 수 있었는데, 2번의 경우 길이가 너무 짧아 못풀었습니다. ...

12월 23, 2017 · Jaejin Jang

2017 암호경진대회 4번

가장 쉽게 풀었죠. 30분도 안걸렸던거 같네요. 프로그램을 통해서 암호문의 유효성이 검증되는데요, 역공학을 통해서 암호문을 쉽게 찾을 수 있습니다. 답안 : Snow White and the Seven Dwarfs!. ...

12월 23, 2017 · Jaejin Jang

2017 암호경진대회 5번

jpeg 포렌식인데요. 암호화된 부분은 찾았지만 복호화 하지 못했네요 ㅜ 푸신 분 있으면 좀 알려주세용 풀이: 제공되는 파일을 살펴 본 결과 만든 날짜와 수정한 날짜의 값이 이상하여 조작된 것을 확인 할 수 있었다. 분석 결과 만든이, 프로그램이름, 카메라 제조업체, 카메라 모델등에서 수상한 값들을 찾아 볼 수 있었다. 특히 프로그램이름의 TruCrypt와 JPEG 포맷의 app13위치에서 TrueCrypt 문자열을 확인함으로써 TrueCrypt로 암호화된 부분이 있음을 유추할 수 있었다. JPEG포맷이 끝나는 부분에서 암호화된 데이터 1MB를 확인할 수 있었다. Truecrypt로 복호화 하기 위해 노력하였으나 실패하였다. ...

12월 23, 2017 · Jaejin Jang

블로그 이전 끝~

앞으로 나의 이야기는 여기서!

12월 23, 2017 · Jaejin Jang