본문 바로가기

728x90
반응형

전체 글

[Algorithm] 자바에서의 EOF 처리법 자바의 EOF 처리법 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스마다 A+B를 출력한다. 알고리즘 문제를 풀다가 입력 개수를 제한하지 않는 문제를 풀게 된 적이 있다. 대부분 N개의 입력을 받는다고 명시하나 해당 문제는 그런게 적혀있지 않아 이상했지만 그냥 풀었다. 역시나.. 일부러 노린 문제였다. 출력초과라는 에러가 났다. 해당 문제(A+B-4) 입력 클래스에 대한 정보는 이곳을 참조. 사용법 Scanner 클래스 Scanner sc = new Scanner(System.in); while(sc.hasNextLine()) { sc.nextLine(); } while(sc.hasNextInt()) { sc.nextInt(); } BufferedReader 클래스 BufferedRe.. 더보기
[Algorithm] 백준 11283(한글과 유니코드) 백준 = 문제번호 11283: 한글 2 문제 문제 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있고, 중성은 ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ로 총 21개, 종성은 없음, ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 28개가 있다. 첫 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 없음을 합친 "가"가 되고, 두 번째 글자는 초성에서 ㄱ, 중성에서 .. 더보기
[Algorithm] 시간복잡도와 공간복잡도는 반비례 소수(Prime Number) 구하기 소수(Prime Number) ? 1과 자기자신으로만 나누어 떨어지는 수 3, 5, 7 … 소수를 구하기 위한 조건은 아래와 같다고 볼 수 있다 2부터 n-1 까지의 어떤 정수로도 나누어 떨어지지 않는 수 public static void main(String[] args) { // 연산 횟수를 체크하기 위한 변수 int operationCount = 0; // 1000이하의 모든 소수를 구하기 위한 조건 (n 더보기
[Algorithm] 시간복잡도 vs 공간복잡도 시간복잡도는 어떤 명령 x를 수행하는데 걸리는 시간을 말한다. 공간복잡도는 어떤 명령 x를 수행하는데 필요한 메모리의 크기를 말한다. 가장 이상적인 프로그램은 시간복잡도와 공간복잡도가 모두 낮은 것이지만, 시간복잡도와 공간복잡도는 반비례 라는 글을 보면 제목 그대로 일반적으로 시간복잡도와 공간복잡도는 반비례 관계임을 알 수 있다 그러므로 두개의 가치중 한가지를 일부 포기해야만 하는(trade-off) 상황이 항상 생기는데 결론적으로 얘기하자면 우리는 시간복잡도를 우선으로 생각해야만 한다. 예를 들어 어떤 프로그램을 짜고보니 이 녀석이 명령x를 수행하는데 10일이라는 시간이 걸리지만 메모리의 여유가 있는 상태이며, 메모리를 더 많이 쓴다면 시간을 10일에서 1일까지 줄일 수 있다고 가정해보자 시간은 돈을 .. 더보기
[Algorithm] 시간 복잡도 시간복잡도(BigO)가 얼마나 나오는지 생각해야 한다. 같은 문제라도 푸는 방법은 여러가지가 있다. 같은 문제라도 어떤 방법을 선택하는지에 따라 수행에 걸리는 시간이 크게 차이난다. 일반적으로 알고리즘에선 1억의 시간복잡도(연산횟수)를 어림잡아 1초정도 걸릴거라고 본다. 이 등가개념은 개인용 PC의 CPU 연산속도를 근거로 나온 수치인데, 현대의 상용 CPU는 대충 초당 1억번의 연산을 하기 때문이다. 1부터 N까지 수의 합을 구하시오. // 시간복잡도 O(N²) int sum = 0; for (int i = 1; i 더보기
[Algorithm] Java로 알고리즘 풀 때 유의사항 Java로 알고리즘 풀 때 유의사항 입력 시간을 단축 시키고 싶다면 Scanner 가 아닌 BufferdReader 를 사용한다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 출력 시간을 단축시키고 싶다면 System.out.print 가 아닌 StringBuilder 혹은 StringBuffer를 사용한다. Java의 String은 VO(Value Object)로서 불변성을 갖기때문에 매번 새로운 인스턴스를 생성하므로 자원의 낭비가 심하다. String을 가변적으로 사용할 수 있게 해주는 StringBuilder 혹은 StringBuffer를 사용하는게 좋다. StringBuilder와 StringBuffer의 차이.. 더보기
[Javascript] eval() 사용방법 몇 개월간을 기다려오던 스터디 모임에서 스터디를 시작하기 위해 문제를 내주었다. eval() 함수를 이용해서 데이터를 확인하는 내용의 문제였다. 이 문제에서 가장 중요했던 부분은 eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(0(){$(".2").3();$(4).5(\'6\',"#7",0.. 더보기
[Server] Hosts 적용이 안될 경우 도메인으로 되어 있는 개발 서버를 접속하려고 하니 안되는 문제가 후임의 PC에서 발생했습니다. IP로 접속하면 접속은 되는데 화면만 뜨고 아무것도 되지 않아서 테스트 진행이 불가능했습니다. 원래 C:\Windows\System32\drivers\etc 경로에 있는 Hosts 파일에 메모장을 관리자 권한으로 연 후에 IP와 도메인을 작성하면 접속 가능했는데 도통 접속이 되질 않았습니다. 구글에서 해결 방법을 찾다 보니 어느 외국인이 해결법 9개를 적어 놓은게 있었는데 하나 하나 차례대로 따라가보니 7번 째 방법으로 해결되었습니다. 여기에 번역해서 적어 놓으려 하니 많은 분들에게 도움이 되었으면 합니다. 1. 방화벽 문제가 아닌가? 첫 번째는 방화벽 문제인가 아닌가를 판단하는 방법입니다. 시작에 cmd를 쳐.. 더보기

728x90
반응형