백준 10942 팰린드롬? 문제 풀이
문제 파악하기 이 문제는 매우 빡빡한 시간 조건과 매우 넓은 범위의 입력값을 가진 문제입니다. 언듯 보면 팰린드롬 여부만 파악하면 될 것 같지만, 1십만 개의 숫자 배열에 대해 최대 1백만회 일정 범위에 대해 팰린드롬에 대해 물어볼 수 있으므로 팰린드롬 관련 처리에 집중한다면 시간 초과가 발생하기 쉬워보입니다. 문제 풀어보기 어떠한 범위의 수열...
문제 파악하기 이 문제는 매우 빡빡한 시간 조건과 매우 넓은 범위의 입력값을 가진 문제입니다. 언듯 보면 팰린드롬 여부만 파악하면 될 것 같지만, 1십만 개의 숫자 배열에 대해 최대 1백만회 일정 범위에 대해 팰린드롬에 대해 물어볼 수 있으므로 팰린드롬 관련 처리에 집중한다면 시간 초과가 발생하기 쉬워보입니다. 문제 풀어보기 어떠한 범위의 수열...
어제는 구데기컵이 개최된 날입니다. 구데기컵의 열성팬으로서 제대로 참여하고 싶었지만, 부대 내부 사정으로 컨테이너 사지방을 가지 못해 제대로 참여할 수 없었습니다. 27903번 인생 문제는 어제 열린 구데기컵에서 제가 유일하게 푼 문제입니다. 휴대폰으로 적당히 타이핑해도 풀 수 있으므로 시도해볼만 합니다. 풀어보기 코드 안에 백준 아이디를 구...
군대에서 프로그래밍 취미를 갖는다는 것은 상당히 어려운 일입니다. 군에서는 IT 강군을 꿈꾼다고 여러가지 시도를 하는 모양이지만, 동시에 프로그래밍을 불건전한 것으로 이미 낙인찍은 듯한 여러가지 정책도 목격됩니다. 사실 임의로 작성한 코드는 어떻게 보면 비인가 SW에 해당하므로 어느정도 이해는 되지만 공감은 되지 않는 것 같습니다. 코드 에디터, 컴...
문제 파악하기 건널목을 통과하는 열차가 없다면 차단기가 올라갑니다. 그렇지 않으면 차단기가 내려갑니다. 열차가 건널목을 접근(=통과하기 시작)하면 40초 뒤 완전히 빠져나갑니다. 상행 열차와 하행 열차가 동시에 통과할 수 있습니다. 같은 방향의 열차 간격은 60초 이상입니다. 문제는 건널목의 차단기가 올라가있는 시간을 초 단위로 ...
최근 부대 안에서 종종 책을 읽게 되면서 독서 기록을 남기는 일이 잦습니다. 무언가 독후감을 작성해보겠다기보다 책을 읽고 덮으면 얼마 지나지 않아 잊어버리게 되니 책 내용을 기록하는 행위에 가깝습니다. 독서기록을 그냥 노트에 작성해두기만 하려고 보니 군 부대 안에서 노트를 계속해서 보관하는 것이 부담스러웠습니다. 개인 물건을 보관할 자리도 많지 않은데...
C#에서 각 타입의 상등 비교를 지원하기 위해 구현할 수 있는 것은 크게 세가지입니다. ==와 != 연산자 Equals 메서드 IEquatable<T> 인터페이스 ==, != 연산자 ==와 !=는 연산자이므로 결과가 정적으로 결정되어야 합니다. 실제로 이 연산자 구현체는 static 키워드가 포함됩니다. 컴파일러는 컴파일 중...
LINQ는 닷넷프레임워크에 포함된 기능이라 그런지 C#뿐 아니라 SQL Server와 같은 MS의 다른 제품군을 대상으로도 작성할 수 있습니다. SQL Server처럼 코드 외부의 데이터 소스에 대해 작성하는 LINQ 질의를 해석식 질의 (Interpreted Query)라고 합니다. 이와 대비해서 코드 내부의 컬렉션을 대상으로 작성하는 LINQ 질...
백준 온라인 저지는 채점하는 언어가 다양해서 32비트, 64비트 어셈블리까지도 지원합니다. 원래 어셈블리가 그렇듯 백준에서 어셈블리 코드를 통과시키려면 채점 환경을 잘 확인할 필요가 있습니다. 당연한 이야기지만, 환경을 충분히 확인하지 않으면 채점 프로그램은 WA로 채점을 마무리할 것입니다. 제 코드스페이스에서는 되는데요 어셈블리는 “제 컴퓨터에서는...
어셈블리는 매력적인 언어입니다. 직접적인 대체제가 없으면서 통상적인 개발 프로세스보다 컴퓨터 과학에 더 가까운 듯합니다. 어셈블리같은 low level 언어를 사용하는 사람들은 주로 HW벤더 소속이거나 운영체제 개발자, 보안 전문가같이 소위 말하는 “고급 인력”으로 취급됩니다. 저 역시 C언어조차 제대로 사용하지 못했을때부터 어셈블리어를 사용하는 꿈...
많은 경로 탐색 코드는 인접 행렬을 생성한 뒤 경로 탐색을 수행합니다. 인접 행렬은 주변의 인접한 다른 노드와의 연결 상태를 표현할 수 있으므로 대부분의 상황에서 유용합니다. 인접 행렬의 사용 위와 같이 1번과 4번 점이 간선으로 연결되었다고 생각해봅시다. 가상의 인접 행렬 adj는 이렇게 정의할 수 있을 것입니다. nodes = 5 # 노드...