본문 바로가기

전체 글

(22)
[C++] -1U, -1ULL visual sutio를 사용하다 보니 -1U 부분에    "단항 빼기 연산자가 부호 없는 형식에 적용되었습니다. 결과는 역시 unsigned입니다."라는 에러가 등장해서 찾아보았다. 컴파일러 경고(수준 2) C4146 | Microsoft Learn 컴파일러 경고(수준 2) C4146자세한 정보: 컴파일러 경고(수준 2) C4146learn.microsoft.com  해당 에러(경고)는 나오듯이, 단항 빼기 연산자가 unsigned 타입에 적용될 때 나타난다. 단항 빼기 연산자는 -3, -(-5.5)처럼 피연산자의 부호를 반전시키는 역할을 한다. (--는 전위/후위 감소 연산자) 하지만 unsigned는 항상 양수이므로 -를 붙여 음수로 만드는 상황을 비정상이라 볼 수도 있다.  -1U를 사용하는 이유..
[Rust] 파일 분할, mod, use, lib.rs 모든 프로그램이 그렇듯이 프로그램이 커지면 하나의 파일로 관리하기가 불가능해집니다. 따라서 파일을 분리하고 서로 연결하는 과정이 필요합니다. cargo로 새 프로젝트를 구성합니다. cargo new greeting cd greeting 예로 인사 프로그램을 만들어 봅시다. // main.rs fn hello_ko() { println!("안녕하세요!"); } fn hello_en() { println!("Hello!"); } fn main() { hello_ko(); hello_en(); } 1. mod는 코드를 구역으로 나눕니다. // main.rs mod korean { pub fn hello_ko() { println!("안녕하세요!"); } } mod english { pub fn hello_en..
[알고리즘 문제] 백준 1443번 망가진 계산기 1443번: 망가진 계산기 (acmicpc.net) 1443번: 망가진 계산기 첫째 줄에 다솜이의 계산기가 표시할 수 있는 자리수 D와 다솜이가 하려고하는 연산의 수 P가 주어진다. D는 2보다 크거나 같고, 8보다 작거나 같은 자연수이고, P는 30보다 작거나 같은 음이아닌 www.acmicpc.net 문제 1에 2에서 9 사이의 숫자를 정해진 횟수만큼 곱해 만들 수 있는 최대의 D자리 수를 만드는 문제 아이디어 D가 최대 8자리이기 때문에 모든 경우를 구한다 해도 많은 시간이 걸리지 않습니다. 1. 백트래킹을 통해 첫 번째부터 P번째 곱할 수를 모두 탐색합니다. 2. 탐색 중 숫자가 D자리를 넘기면 해당 가지를 쳐냅니다. 3. P번째 숫자까지 도달하면, 곱한 값을 기존 답과 비교해 더 큰 수를 골라냅..