분류 전체보기 80

[백준] 15829번 Hashing -자바(JAVA)

https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 아무생각 없이 풀고 제출했다가 50점 받고 뭐지???? 했던 문제이다. int 대신 long 타입을 사용했음에도 불구하고 50점이 나오는데, 그 이유는 31의 제곱수를 계산할때 overflow가 나기 때문이었다. Math.pow()함수를 사용했다면 주의하도록 하자. 이를 해결하기 위해 구글링을 좀 해봤는데 모듈러 연산의 성질 중 분배법칙을 이용하면 overflow를 해결할 수 있다고 한다. 주로..

[백준] 4673번 셀프 넘버 -자바(JAVA)

https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 1번 코드 진짜 무식하게 들이댄 방법이다. 각 숫자 하나마다 일일이 셀프넘버인지 아닌지를 판단하는 코드이다. 최악의 경우(=셀프넘버인 경우) 반복문의 횟수가 최대가 되기 때문에 비효율적인 방법이라 할 수 있다. public class Main { public static boolean is_selfnum(int a) { for(int i = 1; ..

[바킹독의 실전 알고리즘] 0x01 ~ 0x02 기초코드 작성 요령 복습 -C++

앞으로 작성할 내용들은 유튜브에서 바킹독님의 알고리즘 강의를 들은 내용을 토대로 하여, 필요할 경우 전공으로 배운 내용을 조금씩 엮어 복습한 내용입니다. (이것은 다 ~ 개강 전까지 그동안 굳어있던 머리를 활성화 시키기 위한 발악인 것입니다...) 바킹독의 실전 알고리즘 0x01강 링크 바킹독의 실전 알고리즘 0x02강 링크 강의내용 복습 시간복잡도와 공간복잡도 시간 제한과 메모리 제한에 대한 내용. 컴퓨터는 1초에 대략 3-5억 개 정도의 연산을 처리할 수 있다. 즉, 문제에서 시간제한이 1초라고 한다면, "당신의 프로그램은 3-5억 번의 연산 안에 답을 내고 종료되어야 한다"는 의미! 시간복잡도 입력의 크기와 문제를 해결하는 데 걸리는 시간의 상관관계 연산의 수행 횟수는 입력된 개수(n)에 의해 결정..

알고리즘/Study 2022.01.19

[백준] 10757번 큰 수 A+B -자바(JAVA)

https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 큰 수니까 int가 아니라 long을 쓰면 되겠지?하고 접근했다가 실행시켜보니 답이 음수가 나와 털린 문제이다. 쎄해서 책을 뒤적거려보니, 예제 입력1에서 주어진 두 숫자가 예사롭지 않은 수였다. 9223372036854775807 = 263-1 9223372036854775808 = 263 그리고 long의 저장 가능한 값의 범위는 -263 ~ 263-1 이다. 배열로 직접 노가다 해야하나? 고민하다가 머리에 unsigned long이 스쳐 지나갔는데, 구글링해보니 자바는unsigned를 지원하지 않는다..

[JAVA 자바] Math.random()을 사용한 난수 생성

자바의 정석으로 임의의 정수만들기(기초편 109쪽)를 공부하던 중에, 학교에서 C언어로 과제할 때 난수 생성을 자주 했던 기억이 있어서 뭔가 앞으로 두고두고 쓰일 함수라는 예감에 포스팅하게 되었다. Math.random() 메서드 Math.random() 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double값을 반환하는 함수이다. 반환하는 범위는 0.0 이상 1.0 미만임에 주의해야 한다. Math.random()을 간단하게 X라고 하면, 부등식을 이용해서 자신이 원하는 범위의 수를 표현할 수 있다. 0.0

CSS를 사용한 티스토리 소제목 테스트(Odyssey 오디세이 스킨)

이것은 제목1입니다 이것은 제목2입니다 이것은 제목3입니다 티스토리의 CSS 기능을 이용하면 위와 같이 소제목을 눈에 띄게 꾸밀 수 있습니다. 저는 오디세이(Odyssey) 스킨을 사용하고 있는데, 본인이 기본 스킨으로 어떤 스킨을 사용하느냐에 따라서 CSS 코드가 조금씩 다를 수 있음을 유의해 주세요. 대략적인 맥락은 같으니, 적당히 이해했으면 정확한 코드는 본인과 같은 스킨을 사용하는 블로그를 검색해서 참고하길 바랍니다. 티스토리의 CSS탭에서 ctrl+F를 눌러 h2를 검색하여 .article-view h2{ } 부분을 찾아주세요. (다시 말하지만, 오디세이 스킨 기준 코드입니다) 만들 수 있는 소제목 중에서 글자 크기가 제일 큰 제목1이 h1에 해당하는지, h2에 해당하는지에 유의해주세요. 저같은..

잡동사니 2022.01.11

[백준] 1929번 소수구하기/에라토스테네스의 체 -자바(JAVA)

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net solved.ac에서 브론즈 문제만 건들이다가 맨 처음 건들인 실버 문제이다. 겁도없이 덤볐다가 꽤 고생했다. 시간초과가 떠버려서 내 코드가 틀린건지 맞는건지 알 수도 없는 상황이었다(ㅋㅋㅋ). 어쨌든 채점을 받기 위해선 먼저 시간을 줄여야 했다. 첫번째 시도 : M과 N 사이의 모든 수를 N 이하의 모든 수로 나누어보기 두번째 시도 : M과 N 사이의 모든 수를 N 이하의 모든 소수로 나누어보기 두번째 시도도 시간초과로 채점도..

[JAVA 자바] module 관련 오류 해결 (Error occurred during initialization of boot layer, java.lang.module.FindException)

JAVA의 정석 기초편(~25쪽)에서 하란대로 똑같이 했는데 다음과 같은 오류가 떠버렸다. 오류의 내용을 확인해보니, module을 읽는 과정에서 에러가 발생했고, Hello.class가 top-level directory에서 발견된다는 내용이다. 아래 사진에 하이라이트된 곳에 주목해보면 책과 뭔가 다름을 눈치챘을 것이다. module-info.java 라는 파일 안에 Hello 라는 이름의 모듈이 있는 것을 확인할 수 있는데, module-info.java 파일을 지우고 다시 실행하면 다음과 같이 정상 출력 된다. 이는 자바9 이상에서 발생하는 오류라고 하는데, 이런 고생을 하지 않기 위해선 애초에 프로젝트를 만들 때 Finish를 누르기 전 Create module_info.java에 체크박스 되어 ..

[JAVA 자바] 명령 프롬프트(cmd) 실행, 디렉토리 변경 + Hello, world.출력

명령 프롬프트 실행방법(Window) 윈도우에서 명령 프롬프트를 실행할 때는 둘 중 하나의 방법을 사용하면 됩니다. 윈도우키+R을 쳐서 나오는 실행창에 cmd 입력하여 실행 시작 메뉴 근처의 윈도우 검색창에 cmd 검색하여 실행 명령 프롬프트에서 디렉토리 변경하기 명령프롬프트에서 디렉토리를 변경하고자 할 때는 명령 프롬프트 창에 다음을 입력해주면 됩니다. cd는 Change Directory의 약자임을 기억하면 기억하기 쉬워요. cd (원하는 경로) 입력 c드라이브에서 d드라이브 내의 디렉토리로 이동할 경우엔 D: 입력 후 cd (원하는경로) 좀더 정확히 말하자면 cd+space바+원하는경로+enter를 입력하면 됩니다. 아래 사진은 cd+space바+C:\jdk1.8+enter를 입력한 경우입니다. 명..