본문 바로가기

전체 글172

[백준] 1629 곱셈 by C++ https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 재귀를 제대로 이해하고, 수에 관한 통찰력도 요구하는 문제다. 핵심함수 Recur : A, B, C를 입력 받고 A ^ B % C (나머지)의 값을 반환 알고리즘 방식 방식이라기보다는 2가지만 명확히 이해하면 어렵지 않게 풀 수 있다. 재귀 A^B % C = [A^(B / 2) % C] * [A^(B / 2) % C] * [A^(B % 2) % C] % C 2번 방식만 설명하면 될 것 같은데, A^B % C는 X * C + Y (X = 몫, Y = 나머지)로 나.. 2022. 11. 4.
[Java의 정석]Chapter 02. 변수(Variable) 1. 변수 1.1 변수(variable)란? 단 하나의 값을 저장할 수 있는 메모리 공간 1.2 변수의 선언과 초기화 변수 타입 저장하려는 값의 종류 (정수, 실수, 문자 등)에 따라 알맞은 타입을 지정 (int, double, char etc...) 변수 이름 변수에 붙인 이름 즉, 변수가 저장되는 메모리 공간의 이름 (다른 변수와 이름이 중복되어서는 안 됨) 변수의 초기화 메모리는 공유 자원이므로, 변수 선언 시 할당받은 메모리 공간은 이전에 다른 프로그램에 의해 사용된 쓰레기 값이 남아 있을 수 있다. 따라서 변수를 사용하기 전에 반드시 초기화(initialization)를 해야 한다. (하지만 변수의 종류나 쓰임에 따라 초기화를 생략할 수도 있다. ex. 지역변수는 사용되기 전에 반드시 초기화 클.. 2022. 11. 2.
[고찰] 2진수의 overflow (2진수 음수의 덧셈) 보호되어 있는 글 입니다. 2022. 11. 2.
[백준]1018번 체스판 다시 칠하기 by C++ https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 브루트 포스를 사용하는 문제였다. 브루트 포스 알고리즘은 어렵지 않아서 이 것을 이용해야 하는 것을 알면 쉬운데, 그게 아닐 경우 높은 확률로 시간 초과에 걸리기 때문에 항상 BFS, DFS인지를 고민하는데 시간을 많이 쓰게 된다. 전형적인 문제의 형식이 있는 것 같다고도 느껴져서 한 번 몰아서 풀어보면 좋을 것 같다. 핵심 변수 char expectedColor : 시작점의 값('B' o.. 2022. 10. 31.
[Java의 정석]Chapter 01. 자바를 시작하기 전에 1. 자바 (Java Programming Language) 1.1 자바란? 1996년 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어 운영체제에 독립적 => 다양한 OS가 존재하는 인터넷 환경에 적합 클래스 라이브러리(Java API)를 통해 기본적인 프로그래밍에 필요한 요소를 제공 1.2 자바의 역사 Oak 자바의 시작이 된 언어 가전제품이나 소형기기에 사용할 목적으로 C++의 단점을 보완하여 개발 인터넷의 등장으로 운영체제에 독립적인 Oak의 적합성을 인지 후, 이를 인터넷 환경에 적합하도록 개발하여 이름을 Java로 변경 Java Applet(애플릿) 자바로 개발된, 정적인 웹페이지에 사운드와 애니메이션 등의 요소를 제공하는 유일한 방법 Java의 인지도를 단시간에 올릴 수 있었으나, 보안.. 2022. 10. 26.
[백준] 2146번 다리 만들기 by C++ https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 어렵지 않게 풀 수 있을 줄 알았는데, 생각보다 시간이 너무 걸렸다. 핵심 변수 qBuf - 1번째 BFS의 queue q - 2번째 BFS의 queue qSize - 2번째 BFS에서 각 시행 횟수 answer - 대륙간의 최단 거리 알고리즘 방식 전체적으로 2번의 BFS알고리즘을 사용하는데, 1번째 BFS 대륙에 번호를 매기고, pair vis 배열에 {1, 대륙 번호}를 입력하며, 각 좌표와 대륙.. 2022. 9. 13.