< '2025/02 글 목록 (2 Page)

2025/02 14

[C++ / 백준 1182번] 부분 수열의 합

문제   시행 착오 비트마스크 사용법을 몰라 인터넷에 검색해 이해했다. 비트 연산을 통해 백트래킹 사용을 하거나 큰 크기의 배열을 선언할 필요 없이 간편하게 해결할 수 있었다. 비트마스크는 아래 글을 읽고 이해했다. https://velog.io/@alkwen0996/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B9%84%ED%8A%B8%EB%A7%88%EC%8A%A4%ED%81%AC 컴퓨터는 내부적으로 모든 자료를 이진수(비트)로 처리한다. 이런 컴퓨터의 연산방식을 이용한, 정수의 이진수 표현을 활용하여 문제를 해결하는 기법을 말한다. 비트(Bit)란? 비" data-og-host="velog.io" data-og-source-url="https://velog.io/@alk..

[원티드 포텐업 게임 개발자 양성과정 2기 - 1일차] 언어와 C++ 기초

프로그래밍 언어란? 기계어와 사람이 쓰는 언어 중간에 있는 언어로 기계어를 사람이 인식할 수 있게, 사람의 언어를 기계가 인식할 수 있게 바꿔주는 것이다. 컴파일러가 해당 작업을 수행하며 이로 인해 사람이 프로그래밍 언어로 코딩을 할 수 있게 된다.  main 함수는 하나만 존재한다. 이때 Main, main, maiN 등 이런 함수 이름들은 다 다른 것으로 컴파일러가 인식한다. include 문을 작성할 때 는 내장되어 있는 라이브러리를 포함할 때, "" 는 내가 직접 만든 라이브러리 파일을 포함할 대 사용한다.그리고 include 문은 cpp 파일의 적어도 main 위인 상단에 위치해야 한다. #include 에서 iostream 은 표준 입출력 스트림을 의미한다.(input ouput stream)

[C++ / 백준 1248번] Guess(맞춰봐)

백트래킹을 이용해 푸는 문제. 늘상 하던 백트래킹 말고 좋아보이는 방법을 하나 발견할 수 있었는데, 처음에는 N^2 시간복잡도로 풀이하려 했었다. 그 대신 Sum 배열을 선언한 후 합을 미리 구해 놓는 방식이다. 이를 통해 시간복잡도를 획기적으로 줄일 수 있다.원하는 범위(-10 ~ 10) 까지에서 원하는 Depth 까지 순열을 구한다. (1, 1), (2,2) (3,3)  ----  이렇게 i == j 일 때는 무조건 자기 자신을 검사하면 되므로 if ((sign[depth][depth] == '+' && i = 0) || (sign[depth][depth] == '0' && i != 0)) { continue;} 이렇게 복잡도를 줄일 수 있다. 그리고 recur() 함수로 재귀 호출을 하기..