전체 글 682

[Java] 문자열 + 연산과 StringBuilder 비교

Java에서 문자열 결합 시 많이 사용하는 + 연산은 직관적이고 간단하지만, 성능 측면에서 적절하지 않은 경우가 있습니다. 이번 글에서는 문자열 결합의 효율적인 방법과 이유에 대해 설명하겠습니다.Java에서의 + 연산Java의 String은 immutable(불변)한 객체입니다. 따라서 String 간의 + 연산은 기존 객체를 수정하지 않고, 새로운 String 객체를 생성하게 됩니다. 이는 다음과 같은 코드에서 성능 문제가 발생할 수 있습니다.// 비효율적인 코드 예시String res = "";for (int i = 0; i  위 코드는 for 문이 실행될 때마다 새로운 String 객체를 생성하여 성능 저하를 유발합니다.  + 연산이 효율적인 경우단일 라인의 +연산에서는 Java 컴파일러가 내부적으..

Algorithm 2024.11.09

[Dev C++] Dev C++에서 for 내부 변수 선언 오류 해결 방법

C언어 표준에 따라 for 내부 변수를 선언할 때, C99 보다 오래된 표준을 사용하는 경우 오류가 발생할 수 있습니다.이 문제를 해결하기 위한 표준 준수 작성 방법과, 컴파일러 옵션을 수정하는 방법을 설명하겠습니다. 1. 기본 C 표준 준수for 내부 변수 선언은 C99부터 지원되는 기능입니다.이를 해결하기 위해서는 우선 변수의 선언과 for 초기식을 분리하는 방법이 있습니다.다음과 같이 변수 선언을 분리하면 문제를 해결할 수 있습니다.초기식을 전체를 이동하는 방법도 가능합니다.이 방법은 C99 이후의 표준을 사용하지 않고도 C 표준을 준수하는 방법입니다.  2. 컴파일러 설정 변경하위 버전의 Dev C++에서는 컴파일러의 기본 설정에 따라 C89가 적용되는 경우가 많습니다.C99 또는 C11을 사용해..

Dev 2024.11.09

[Dev C++] Dev C++에서 c언어만 사용하는 방법

Dev C++은 기본적으로 C/C++ 통합 환경을 제공하기 때문에 C언어만 사용하는 설정이 필요합니다. 이 글에서는 Dev C++에서 C언어만 사용하는 방법을 설명하겠습니다. 우선 C언어로 코드를 작성해 줍니다. 1. 파일 저장 시 확장자 지정C/C++ 통합 환경을 제공하므로 컴파일하려는 파일의 확장자를 지정하면 C언어로만 컴파일을 할 수 있습니다.코드를 작성 후 다음과 같이 '파일 형식'을 '.C'로 선택 후 저장하면 됩니다. 잘 실행이 됩니다. 정말 C언어만 사용 가능한지 확인해 보겠습니다. stdio.h대신 C++의 iostream을 불러오려고 하니 C언어 컴파일러가 C++ 전용 코드를 인식할 수 없어 다음과 같은 오류가 발생합니다.  2. 컴파일러 설정 변경다음으로 소개할 방법은 Dev C++의 ..

Dev 2024.11.07

[Nintendo] PC에서 Mii 변경 하는 방법

모바일에서 Mii를 변경하는 방법이 불편한 분들을 위해 PC에서 Mii를 변경하는 방법을 안내드립니다.PC에서 Mii를 변경하기 위해 어디로 가야 하는지 찾는 방법과 과정에 대해 알아보고 손쉽게 나만의 Mii를 꾸며보세요 1. Nintendo 계정 웹사이트로 이동하기PC에서 웹 브라우저를 열고 https://accounts.nintendo.com/login에 접속합니다.로그인 화면이 나오면, 피크민 블룸과 연동된 닌텐도 계정으로 로그인하세요.  PC에서 Mii를 수정하기 위해서는 프로필에서 변경하기를 통해 변경하는 방법과, 주소를 통해 변경하는 방법이 있습니다.두 방법에 대해 모두 설명드리겠습니다.우선 프로필 변경을 통해 Mii를 수정하는 방법입니다. 2. 프로필 변경화면 중앙의 '유저 정보'에서 프로필..

[EC2] AWS EC2 인스턴스에서 시간대(Timezone) 설정 변경하기

AWS EC2 인스턴스를 활용할 때 기본적으로 시간대(Timezone)가 UTC(세계 협정시)로 설정되어 있습니다.UTC는 글로벌 시간 표준으로 편리하지만, 한국 시간과 같은 로컬 시간대가 필요한 경우에는 시간대를 변경하는 것이 유용할 수 있습니다.UTC와 Asia/Seoul의 차이로 발생할 수 있는 예시로는 프로세스 예약 실행이 있습니다.한국시간 기준 매주 화요일 AM 6시에 특정 작업을 실행하도록 스케줄을 등록한 경우. 실제로는 UTC에 따라 월요일 PM 9시에 작동할 수 있기 때문입니다. 이번 포스팅에서는 EC2 인스턴스의 시간대를 한국 시간(Asia/Seoul)으로 변경하는 방법과 필요 시 다시 UTC로 복원하는 방법을 단계별로 설명하겠습니다.  1. 현재 시간대(Timezone) 확인하기우선 E..

Dev/AWS 2024.11.05

[백준 11729] 하노이 탑 이동 순서 [Python]

문제세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다.한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.아래 그림은 원판이 5개인 경우의 예시이다.입력첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다.출력첫째 줄에 옮긴 횟수 K를 출력한다.두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 ..

[백준 10427] 빛 [Java]

문제민균이에게는 ‘빚쟁이’ 라는 별명이 있다. 이 별명은 악덕 사채업을 하는 김우현연구소에서 민균이가 빌린돈을 잘 갚지 않는다고 하여 붙여준 이름이다. 민균이가 최근 N (1 ≤ N ≤ 4000) 번 돈을 빌렸고, 그때마다 빌린 돈이 각각 A(1), A(2), …, A(N) (1 ≤ A(i) ≤ 104) 라고 하자. 악덕 사채업소 김우현 연구소는 이름만큼이나 빌린 돈을 갚는 방식이 독특하다.먼저, 김우현 연구소가 민균이에게 M번 (1 ≤ M ≤ N) 의 빚을 갚으라고 명령하면, 민균이는 N번중 아무렇게나 M 번을 고르고, 고른 것 중에서 가장 많은 돈을 빌렸을 때 빌린돈 x M 을 갚아야 한다. 이렇게 하면 민균이가 김우현 연구소에 갚아야 하는 돈은 (빌린돈 + 추가적으로 더 갚아야 할 돈) 이 된다. ..

[쉽게 배우는 운영체제] 5장 연습문제 정답

01. 통신 방식 중 동기화를 지원하는 단방향 통신 방식은?공유 메모리파이프공유 파일소켓02. 통신 방식 중 서로 다른 컴퓨터에 있는 프로세스 간 통신에 사용하는 방식은?공유 메모리파이프공유 파일소켓03. 통신 기기 중 반양방향(half duplex) 통신에 해당하는 것은?무전기모르스 부호전화무선 공유기04. 파일 관련 함수에서 파일에 접근할 수 있는 권한을 주는 함수는?open()close()read()write()05. 파일 관련 함수에서 파일에 접근할 수 있는 권한을 돌려주는 함수는?open()close()read()write()06. 인터넷에서 하나의 포트를 여러 프로세스가 공유할 수 있도록 만든 장치는?데몬소켓IP 주소HTTPD07. 소켓 관련 함수에서 데이터를 보내는 함수는?socket()cl..

CS 2024.10.20

[쉽게 배우는 운영체제] 4장 연습문제 정답

01. 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수를 결정하는 단계는?단기 스케줄링중간 수준 스케줄링고수준 스케줄링저수준 스케줄링02. 저수준 스케줄링이 원만하게 이루어지도록 완충 역할을 하는 단계는?장기 스케줄링중간 수준 스케줄링고수준 스케줄링작업 스케줄링03. 활성화된 프로세스의 실제 진행을 담당하는 단계는?작업 스케줄링중간 수준 스케줄링고수준 스케줄링저수준 스케줄링04. 비선점형 스케줄링과 비교하여 선점형 스케줄링에 대한 설명으로 옳지 않은 것은?비선점형에 비하여 우선순위가 낮다.실행 상태에 있는 작업을 중단시키고 새로운 작업을 실행할 수 있다.문맥 교환의 오버헤드가 많다.시분할 방식 스케줄러에 사용된다.05. 나머지 3개와 비교하여 우선순위가 높은 프로세스는?일괄 처리 프로세스사용자 프로..

CS 2024.10.20