프로그래밍 93

[BOJ] 11945 - 뜨거운 붕어빵 풀이

1. 문제 문제 고려대학교에 입학한 새내기 호돌이는 안암역을 지나다가 한 붕어빵 장수를 만났어요. “안녕, 안녕, 안녕하십니까, 아저씨! 붕어빵 두 개 주세요.” “안녕을 세 번 외쳤으니 붕어빵 세 개!” 붕어빵 두 개의 값을 내고 세 개를 받은 호돌이는 기분이 좋았어요. 호돌이가 붕어빵 하나를 꺼내어 한 입 물었는데…. 너무 뜨거워서 그만 붕어빵을 떨어뜨리고 말았어요ㅠㅠ 붕어빵은 자유 낙하운동을 하면서 땅에 떨어졌는데 신기하게도 좌우가 뒤집힌 모양으로 착지했답니다. 호돌이가 붕어빵을 한 입 물기 전의 모양이 입력으로 주어지면, 땅에 떨어졌을 때에는 어떤 모양일지 출력하세요. 입력 첫째 줄에는 두 개의 정수 N과 M(0≤N,M≤10)이 주어집니다. 둘째 줄부터 N개의 줄에 걸쳐 붕어빵의 모양이 주어집니다..

[BOJ] 13136 - Do Not Touch Anything 풀이

1. 문제 문제 ACM-ICPC 대회의 대회장은 R행 C열의 직사각형 형태로 좌석이 배치되어 있다. 대회가 시작하기 전에는 참가자들이 아무것도 만지면 안 되기 때문에 진행자는 'Do not touch ANYTHING!!!'을 연신 외친다. 하지만, 진행자가 성대결절에 걸리면서 'Do not touch ANYTHING!!!'을 외칠 수 없는 처지가 되었다. 따라서 주최측은 CCTV를 설치하여 참가자들을 감시하려고 한다. 이때, 각 CCTV는 N행 N열의 직사각형 영역의 좌석을 촬영할 수 있다. 모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 최소 몇 개의 CCTV가 필요할까? 입력 첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. (1 ≤ ..

[BOJ] 3460 - 이진수 풀이

1. 문제 문제 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. (1 ≤ T ≤ 10, 1 ≤ n ≤ 10 6 ) 출력 각 테스트 케이스에 대해서, 1의 위치를 공백으로 구분해서 출력한다. 위치가 낮은 것부터 출력한다. 예제 입력 복사 1 13 예제 출력 복사 0 2 3 힌트 [출처 : BOJ, 문제에 대한 모든 권리는 BOJ(acmicpc.net, startlink)에 있음] 2. 해답 이 문제는 정수를 어떻게 이진수로 표현하고 있는지, 그리고 비트와이즈 ..

[BOJ] 3495 - 아스키 도형 풀이

1. 문제 문제 창영이는 메모장에 '.', '\', '/'을 이용해서 도형을 그렸다. 각 문자는 그림에서 1*1크기의 단위 정사각형을 나타낸다. '.'은 빈 칸을 나타내며, '/'는 정사각형의 왼쪽 아래 꼭지점과 오른쪽 위 꼭지점이 연결된 선분을, '\'은 왼쪽 위 꼭지점과 오른쪽 아래 꼭지점이 연결된 선분을 나타낸다. 창영이가 그린 도형의 넓이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 h와 w가 주어진다. h는 그림의 높이, w는 너비이다. (2 ≤ h,w ≤ 100) 다음 h개 줄에는 창영이가 메모장에 그린 다각형이 주어진다. 창영이가 그린 다각형은 1개이고, 변과 변이 서로 교차하는 경우는 없고, 자기 자신과 접하는 경우도 없다. 출력 첫째 줄에 다각형의 넓이를 출력한다. 예제 입력 복사 ..

[JS] HTML에서 JS를 이용하여 IP 주소 얻기

1. HTML에서 Javascript만으로 IP 주소 얻기 HTML에서 IP주소를 확인하기 위한 방법으로 대부분 사람들이 Java script를 이용하려고 한다. 단도직입적으로 HTML내에서 Javascript만으로 IP 주소를 얻을 수 없다. 2. IP address를 구하는 방법 서버는 사용자의 요청(Request)을 받을 때 TCP 또는 UDP 헤더를 보고 IP 주소를 알 수 있다. 즉, IP 주소를 얻기 위해서는 서버단에서 처리를하여 값을 되돌려 주어야 한다. 따라서 할 수 있는 방법으로 1. 서버를 구현한다. 2. API를 사용한다. 두개로 좁힐 수 있다. (1) 서버를 구현하는 방법 많은 사람들이 사용하는 Node.js나 php를 이용한다면, 많은 소스코드가 인터넷 상에 존재한다. 애초에 이런..

[JS] IP를 이용한 Geolocation 정보 얻기 (위도, 경도)

IP 주소를 이용하여, Geolocation 정보를 얻을 수 있다. 여기서 Geolocation은 위도와 경도 (Latitude, Longitude)를 뜻한다. 여기서 얻어지는 위도와 경도값은 굉장히 부정확하다. 그 이유는 ISP(인터넷 공급자)가 제공한 데이터를 이용하기 때문이다. 따라서 현재 위치는 서울이지만 조회 결과가 경기도로 나타날 수도 있다. 이 1. IP 주소 얻기 현재 자신의 위치 정보를 얻는 방법은 [JS] HTML에서 JS를 이용하여 IP 주소 얻기를 참조하자. 2. Geolocation API 설명 여기서 사용할 API는 ip-api.com가 제공한다. 이 사이트는 별도의 회원가입이나, 키발급 없이 바로 조회를 할 수 있다. 다만 분당 150회의 제한이 있으니 확인하기 바란다. 또한 ..

[Python] Modbus CRC16 파이썬3 예제 코드

C언어로 구현되어 있는 Modbus CRC16 코드는 아래의 링크를 참고하면 된다. http://www.modbustools.com/modbus_crc16.htm 이 코드를 파이썬으로 포팅해야하는 이유가 생겨서 CRC16을 파이썬3에서 구할 수 있도록 코딩하였다. 상세한 내용은 코드를 참고하길 바란다. # This code is ported from modbus CRC16(https://www.modbustools.com/modbus_crc16.htm) crcTable=[0x0000,0xC0C1,0xC181,0x0140,0xC301,0x03C0,0x0280,0xC241,0xC601,0x06C0,0x0780,0xC741,0x0500,0xC5C1,0xC481,0x0440,0xCC01,0x0CC0,0x0D80..

[맥북] Mac OS 단축키 모음

다시금 맥북을 쓰기 시작하여, 단축키를 외우고자 포스트를 작성한다. 1) 일반적인 단축키 종류 Mac OS 윈도우즈 한영전환 ctrl+space 한영키 창 닫기 cmd + w alt + f4 프로그램 종료 cmd + q alt + f4 모든 창 닫기 cmd + opt + w win키 + D 삭제 cmd + del del 시스템 종료 cmd + opt + esc ctrl + alt + del 새로고침 cmd + r ctrl + r 복사 cmd + c ctrl + c 잘라내기 cmd + x ctrl + x 붙여넣기 cmd + v ctrl + v 실행 취소 cmd + z ctrl + z 모두 선택 cmd + a ctrl + a 2) 유용한 기능 종류 Mac OS 윈도우즈 마지막으로 닫은 탭 열기 shift +..

[JS] Javascript를 이용하여 HTML 주석 지우기 / 숫자 콤마 넣기

1. HTML 주석 지우기 자바 스크립트로 HTML 엘리먼트의 값을 받아 올 때, HTML 주석이 같이 들어있는 경우가 있다. 이때 HTML의 주석을 정규식을 이용하여 효과적으로 제거한다. function rmComment(str){ return Number(str.replace(/(]+)>)/ig, "").replace(/,/ig, "")); } 2. 숫자 comma 넣기 자바 스크립트로 숫자를 입력할 때, 1000단위에서 comma를 넣어주는 경우를 정규식을 이용하여 수행한다. function commify(n) { var reg = /(^[+-]?\d+)(\d{3})/; n += ''; while (reg.test(n)) n = n.replace(reg, '$1' + ',' + '$2'); retu..

[JS] CORS 이슈 Access-Control-Allow-Origin 문제 해결하기

CORS 이슈 Access-Control-Allow-Origin 문제 해결하기 CORS 크로스 도메인 이슈 AJAX를 이용하여, 다른 API의 데이터를 가져오려고 할 때, 갑자기 나타나는 에러이다. 정확한 원인은 알아보지 않아 잘 모르겠지만, 아무튼 같은 URL에서만 호출을 하도록 강제하는 정책이다. 아마도 브라우저 단에서 처리하는 것 같다. 해결 방법 아무튼 그런건 모르겠고, 해결방법은 여러가지가 있다. 1) 브라우저의 옵션으로 처리하기 2) 크롬 플러그인을 설치하기 3) 트릭 사실 1~2번 방법이 의미가 없는게, 웹 서버 사용자에게 ActiveX처럼 설치하라고 강요할 수 없기 때문. 아무튼 해결 방법은 이렇게 하면 된다. !!! JQUERY는 필수, 아직 시간이 없어서 JS만으로 처리하는 방법을 안찾..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사