운동하는 개발자 (191) 썸네일형 리스트형 HackerRank [Search] Hackerland Radio Transmitters /알고리즘 해커랭크 문제 주소 : https://www.hackerrank.com/challenges/hackerland-radio-transmitters/problem 문제 : 1차원 배열의 마을에서 모든 집에 라디오가 들르게 하는데 필요한 송신기의 수 풀이 1. 시작점(nBefore)에서 최대로 멀리 세울 수 있는 안테나 위치(nPos)를 찾는다 2. 그 위치로부터 영향을 주는 최대거리(nAfter)를 찾는다 그리고 안테나 수(Antcnt) 값을 누적시킨다 3. 그 다음칸을 시작점으로 변경 후 위 작업을 반복하여 마을의 끝 위치에 도달하면 종료 답안 #!/bin/python3 import math import os import random import re import sys # Complete the hackerlan.. HackerRank [Graph Theory] Roads and Libraries /알고리즘 해커랭크 문제 주소 : www.hackerrank.com/challenges/torque-and-development/problem 문제 : 도서관의 수, 도시의 수, 도서관 건설비용, 도로 건설비용 값을 주고 모든 도시가 최소 하나이상의 도서관과 연결되기 위해 발생하는 최소 비용 계산 풀이 1. 우선 도로건설 비용보다 도서관 건설 비용이 더 저렴하면 모든곳에 도서관을 지으면 된다 2. 도시의 수만큼 2차원 리스트를 만들어 깊이우선탐색으로 이어질 수 있는 최대의 도로 길이를 구한다(도로가 더 저렴하니 최대 도로길이가 중요) 3. 도로길이*도로비용 + (도시의 수 - 도로길이)*도서관 비용 을 계산한다 4. 결과적으로 몇개의 도시가 있는지가 중요한게 아니라 최대 몇개의 도로를 이을 수 있는지가 관건이다 답안 imp.. 윈도우 JNLP 확장자 파일 실행 방법 우선 JNLP파일이란 Java Network Launch Protocol의 약자로 서버에 있는 jar파일을 받아 실행한다고 보면 된다 이를 실행하기 위해선 JRE(Java Runtime Environment)가 설치되어있어야 하고 실질적으로 실행하는 바이너리는 "[설치된경로]\jre1_8.버전\bin\javaws.exe" 파일이다 (필자는 개발자 이다보니 JDK만 설치해놨어서 해당 파일이 없었고 '나는 자바 이미 설치되어있는데 왜 실행이 안되지?' 라고하며 java.exe로 암만 실행해도 아무 반응이 없었다) 자바설치 주소 : www.java.com/ko/download/ 자바 설치 후 cmd창에서 java -version 명령으로 설치된것을 확인하고 jnlp파일을 그냥 실행했을 때 아무반응이 없거나 정.. HackerRank [Constructive Algorithms] Flipping the Matrix /알고리즘 해커랭크 문제주소 : www.hackerrank.com/challenges/flipping-the-matrix/problem 문제 : 2n * 2n 크기의 매트릭스를 큐브돌리듯이 상하 좌우를 회전시켜서 n * n 크기의 좌측상단 매트릭스에 최대값이 위치하도록 한 뒤 그 매트릭스의 모든값을 합한값을 리턴하라 풀이 1. 매트릭스 가장 좌측상단의 1열1행에 있는 값은 아무리 회전한들 결국 존재할 수 있는 위치는 n열n행, 1열 n행, n열 1행, 1열1행 4곳밖에 존재 할 수 없다 2. 반대로 그 4곳에 위치하는 값중 가장 큰 값이 1열1행에 존재하게 될 것이다 3. 모든 나머지 매트릭스의 위치값들도 matrix[i][j], matrix[i][n-j-1], matrix[n-i-1][j], matrix[n-i-1][n-.. HackerRank [Bit Manipulation]Lonely Integer /알고리즘 해커랭크 문제주소 : www.hackerrank.com/challenges/lonely-integer/problem 문제 : 주어진 int array에서 같은 수의 값을 한쌍씩 제외시킨 후 홀로남는 값을 리턴하라 풀이 1. 같은 값을 한쌍씩 없애는 가장 쉬운방법은 모든값을 누적으로 xor시켜버리면 된다 답안 #!/bin/python3 import math import os import random import re import sys def lonelyinteger(a): result = 0 for i in a: result = result ^ i return result if __name__ == '__main__': # fptr = open(os.environ['OUTPUT_PATH'], 'w') fptr =.. java file md5 checksum / 자바 파일 md5 체크썸 MD5는 과거 128비트 암호화 해시함수로 사용되었으나 암호화 결함 오류로인해 암호화에는 사용되지 않고 파일의 무결성 검사에 주로 사용되고 있다 나도 그 용도로 사용중에 있다 public static byte[] createChecksum(String filename) throws Exception { InputStream fis = new FileInputStream(filename); byte[] buffer = new byte[1024]; MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do { numRead = fis.read(buffer); if (numRead > 0) { complete.update(buffer,.. HackerRank [Bit Manipulation] Counter game /알고리즘 해커랭크 문제 주소 : www.hackerrank.com/challenges/counter-game/problem 문제 : Louise와 Richard가 번갈아 가며 주어진 숫자가 2의 제곱근 값인지 확인한다 2의 제곱근 값이라면 1/2 값을 상대에게 넘기고 아니라면 주어진 숫자보다 작은 숫자 중 가장 높은 2의 제곱 값과의 차이 값을 상대에게 넘겨주되 1을 넘겨주면 승리한다 Louise가 항상 먼저 시작한다 풀이 1. 공학용 계산기에 2의 제곱근을 순서대로 입력해보았다 (2..4..8..16..32) 이 값들의 2진수 값들은 10, 100, 1000, 10000이다 가장 앞자리는 1이고 2의 승수만큼 뒤에 0이 붙는다 2. 전달받은 값 n을 2진수로 바꾸고 그 길이를 구한 뒤 그 길이와 같은 2의 제곱근 값을 .. 안드로이드11 내파일, ASTRO로 android/data 경로 접근불가 특정 url을 통하여 파일을 다운받는 시스템을 테스트중이였는데 최신 기기에서 정상적으로 다운이 되었는지 내 파일 앱을 통해 /Android/data를 열었더니 다음과 같은 화면이 나왔다 찾아보니 안드로이드11 (API30) 부터는 보안정책에 의해 접근이 불가능하다고 하였다... 파일다운이 정상으로 된건지 확인하기 위해 압축파일을 열어보는 방식으로 진행하고 있었는데.. 임시로 테스트파일을 미디어파일로 변경 후 다시 다운받아 플레이어로 재생해보려고 했으나 자동으로 미디어파일을 찾지 못하고 수동으로 경로를 찾아가도 동일하게 접근 할 수 없었다 앱내에서는 자신의 경로의 권한을 획득해놨으니 소스안에서 Hash값을 통해 파일이 정상적으로 다운완료되었는지 확인해야 할 것 같다.. 기왕 들어간김에 안드로이드11관련 내.. 이전 1 ··· 18 19 20 21 22 23 24 다음