본문 바로가기

전체 글168

[백준] 2217 - 로프 by C++ https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 며칠전부터 반례를 잘못생각하고, 구현도 잘못하고 슬럼프인 것 같다.... 멍청해졌거나.... 정말 쉽게 풀었던 기억이 나는데 이제와서 고민하고 있으니 가슴이 조금 아프다 알고리즘 방식 먼저 예시의 15 10 로프 2개를 사용해서 버틸 수 있는 최대 중량은 최대 중량이 낮은 로프가 버틸 수 있는 중량, 즉 10 * 2 = 20이다. 이를 일반화하면 내림차순으로 정렬된 수 n1, n2, n3.. 2022. 11. 8.
11월 1주차 회고록 알고리즘 스터디를 시작했다. 하루에 1문제씩 가볍게 하려는 마음으로 시작했는데, 막상 시작하고서 의욕이 앞서서 어려운 문제들을 선정한 나머지, 알고리즘에 시간을 생각보다 너무 많이 썼다. 최근에 코딩테스트 때문에 C++(알고리즘)위주로 공부했어서 그런가, 자바 수업 듣는데 이걸 까먹네? 싶은 것들이 있었다. 어쨋든 java & spring으로 취업준비를 하기 때문에, 11월 한달동안은 알고리즘 매일 1문제 + Java의 정석 7장까지 + 패캠 제공 인강 완강을 목표로 공부할 계획이다. 알고리즘은 일반적(?)으로 코테에서 많이나오는 것들 위주로 진행하는게 좋을 것 같다. 2의 보수 처음 자바의 정석을 공부할 때도 몇 시간씩 매달려서 겨우겨우 이해했던게 기억이 난다. 결과적으로 핵심은 2의 보수의 정의가 어.. 2022. 11. 8.
[백준] 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.