[문제] 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net [문제 풀이] - 한자리씩 char 배열에 저장 - 배열에 저장된 수들을 int형으로 바꿔서 더함 - 더한 값이 한자리 수가 될 때까지 위의 과정을 반복 - 더한 값이 한자리 수 중 3, 6, 9가 아니면 3의 배수가 아니므로 NO를 출력하고 조건을 만족하면 YES를 출력 [코드] #include #include #include using namespace std; void cal(char num[]); int main() { cin.sync_with_std..
[문제] 13706번: 제곱근 첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다. www.acmicpc.net [문제 풀이] - 풀이 1) sqrt 라이브러리 사용 - 풀이 2) 이분탐색법 사용 > mid의 제곱이 원래 값과 같아질 때까지 반복시킴 [코드] - python: 백준 통과 코드 import math a=int(input()) print(math.isqrt(a)) - C++: 백준 통과 X --> 로직 문제인 것 같다는 결론이 많음 #include #include using namespace std; int main() { int n; cin>>n; int low = 1; int high = n; int mid; while (1) {..
[문제] 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net [문제 풀이] 풀이 1) 스택을 사용하여 2로 나눈 나머지를 저장하고 이를 pop하여 거꾸로 출력함 풀이 2) 재귀 호출을 사용하여 나머지가 0 혹은 1이면 출력하고 그렇지 않으면 재귀호출 시행 [코드] - 풀이 1 #include #include using namespace std; int main() { stack s; long a; cin>>a; do{ s.push(a%2); a/=2; }while(a!=0); do{ cout
[문제] 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net [문제 풀이] - 크로아티아 알파벳의 첫 글자를 기준으로 그 다음 글자를 확인하여 변수 i를 증가시켜 자리를 이동한 후 총 개수를 셈 [코드] #include using namespace std; int main() { string str; int count = 0; cin>>str; for (int i = 0; i
[문제] 15953번: 상금 헌터 첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다. 다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 www.acmicpc.net [문제 풀이] - 각 회차 별 등수를 입력받아 해당 구간에 속하는 금액을 출력 - 등수를 입력할 때 본선에 진출하지 못한 순위와 순위권이 아닌 것을 예외처리 해야함 [코드] #include using namespace std; unsigned int cal(unsigned int a, unsigned b); int main() { unsigned int n, a=0, b=0; cin.sync_with_stdio(0); cin.tie(0); ..
[문제] 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net [문제 풀이] - a가 b의 약수일 때, b는 a로 나누어 떨어짐 - a가 b의 배수일 때, a는 b로 나누어 떨어짐 [코드] #include #include using namespace std; string trans(unsigned int a, unsigned int b); int main() { unsigned int a, b; cin.sync_with_stdio(0); cin.tie(0); do { cin >> a >> b; if(a==0&&b==0) return 0; cout
# 도움말 사용법 - man: 'manual'의 약어로 리눅스에 포함된 도움말 man 명령어 이름 = info 명령어 이름 = 명령어 이름 --help 위쪽 행으로 이동 ↑ 또는 k 아래쪽 행으로 이동 ↓ 또는 j 이전 페이지로 이동 PgUp 또는 SpaceBar 다음 페이지로 이동 PgDn 또는 b 특정 단어 검색 /단어 다음 단어로 이동 n man 명령어에 대한 도움말 h 종료 q # 섹션 - man 명령어는 1~9까지의 섹션을 나눠 사용할 수 있음 - 지정한 섹션 번호에 있는 도움말을 출력 더보기 man [섹션번호] 명령어 * 특별히 섹션번호를 지정하지 않으면 섹션 1부터 9까지 차례로 검색해 가장 먼저 만나는 도움말을 출력 섹션 1 명령어 섹션 2, 섹션 3 프로그래밍 섹션 4 디바이스 섹션 5 ..
# vi 에디터 # vi 에디터 실행 vi # vi 에디터 새로운 파일 만들기 vi 만들파일의이름 * i를 누르면 입력 모드를 통해서 입력을 할 수 있음 * Shift + Spacebar: 한/영 변환 # vi 에디터 종료 - 입력 모드에서 Esc를 누르면 '명령 모드'가 나옴 > :wq를 입력한 후 Enter를 누르면 저장 후 종료할 수 있음 :w 저장(write) :q 종료(quit) :q! 기존의 변경된 내용을 무시하고 종료 :wq 저장 후 종료 > 저장된 내용 확인 가능 # vi 에디터 입력 모드 명령 키 설명 키 설명 i 현재 커서의 위치부터 입력 I 현재 커서 줄의 맨 앞에서부터 입력 a 현재 커서의 위치 다음 칸부터 입력 A 현재 커서 줄의 맨 마지막부터 입력 o 현재 커서의 다음 줄에 입력..
# 종료 * 명령어들은 root 계정에서 사용할 수 있고 admin 권한을 준 일반 계정도 가능함 suthdown- P now halt -p intit 0 - shutdown -P +10 # 10분 후 종료 (P: poweroff) - shutdown -r 22:00 # 오후 10시에 재부팅 (r: reboot) - shutdown -c # 예약된 shutdown 취소 (c: cancel) - shutdown -k +15 # 현재 접속한 사용자에게 15분 후 종료된다는 메시지를 보내지만 실제로 종료되지는 않음 # 시스템 재부팅 shutdown -r now reboot init 6 # 로그아웃 logout exit # 가상 콘솔 - 가상의 모니터 - CentOS는 총 6개의 가상 콘솔을 제공함 > 즉, 컴..
# 네트워크 변경 [Linux] 네트워크 정보 파악과 변경 # 네트워크 환경 상세 ① 호스트 OS에는 192.168.111.1의 가상 IP가 자동으로 할당되어 있음 ② 호스트 OS는 실제로 사용하는 별도의 IP 주소가 있음 ③ 192.168.111.2는 게이트웨이, DNS 서버라는 2가지 역 fascination-euna.tistory.com # IP주소 설정 - 관련 디렉터리로 이동한 후 파일을 편집 cd /etc/sysconfig/network-scripts/ # 네트워크 설정 파일이 저장된 디렉터리로 이동 ls # ifcfg-xxxx 파일 확인 gedit ifcfg-xxxx # 앞에서 확인한 파일 편집 - 다음과 같이 내용을 수정 BOOTPROTO="none" IPADDR="192.168.111.1..