목록전체보기 (253)
anothel의 지식 창고
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhvySy/btrvNRzj6tI/6tN1nGx5RUeRvkiFNvjx60/img.png)
PKI 응용 소프트웨어를 다룬 지도 어느덧 4년 차다. 리눅스 환경은 익숙해졌고, 유닉스 환경에도 점차 적응했는데, 그 과정에서 절대 해서는 안 될 것들과 해두면 좋은 팁들이 자연스레 자리잡게 되었다. 이번 글에서는 그 경험을 공유해 보려 한다.1. Unix 환경에서 피해야 할 실수와 팁유닉스 환경에서는 OS마다 패키지나 명령어 지원이 제각기 다르고, 예상치 못한 작동을 하는 경우도 많다. 작은 실수 하나가 시스템 전반에 영향을 미칠 수 있기 때문에, 기본 시스템 설정이나 권한 설정은 특히 신중히 다뤄야 한다.2. 다양한 환경에서의 빌드 자동화 경험한창 CMake로 빌드 자동화를 시도하며 동일한 코드를 리눅스뿐 아니라 AIX, SunOS, HP-UX에서 테스트할 때가 있었다. 환경마다 명령어와 라이브러리..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dTe7Gm/btrvJyUELpq/s7tpnVwVJxRe1v8KlgRyeK/img.jpg)
1. 문제 상황: 낮은 버전 Solaris에서 압축 해제 오류Solaris 8, 9, 10 버전에서는 .tar.gz 파일을 풀려고 할 때 오류가 발생할 수 있다. 예를 들어, 다음과 같이 tar 명령어를 사용하려 할 때 디렉토리 체크섬 오류가 발생할 수 있다$ tar -xvf pressedFile.tar.gz tar: directory checksum error (디렉토리 체크섬 오류)2. 문제 원인: z 옵션 미지원Solaris 2.5부터 10까지의 버전에서는 tar 명령어의 z 옵션을 지원하지 않기 때문에 직접 .tar.gz 파일을 압축 해제할 수 없다. z 옵션은 gzip 압축을 다룰 수 있게 해주는 옵션이지만, 오래된 버전의 Solaris tar에는 이 옵션이 없다.3. 해결 방법: 낮은 버전 S..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cRvXLx/btrvL4TuzmL/KvBca7EVkfksivDpsdsuek/img.png)
1. AIX와 XL C/C++ 컴파일러의 필요성AIX에서 개발을 시작할 때 필수적으로 XL C/C++ 컴파일러를 사용해야 한다고 생각했었다. 과거 회사와 이전 AIX 버전들에서도 XL C/C++이 기본 컴파일러로 사용되었기 때문이다. 그러나 실제로는 AIX의 버전에 따라 지원하는 컴파일러 버전이 다르고 유료라는 점을 알게 되었다. 이러한 제약 때문에 AIX 버전에 따라 맞는 버전의 XL C/C++를 사용하는 것이 필요했다.2. AIX 버전별 XL C/C++ 호환성AIX의 버전별로 지원되는 XL C/C++ 컴파일러가 다르기 때문에, 각 버전에 맞는 컴파일러 버전 확인이 필수적이다. 예를 들어, AIX 7.2의 경우에는 13.1 버전을 지원한다고 명시되어 있었지만, 실제로는 해당 업데이트가 적용된 버전만 정..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qmeK6/btrvNRLP29y/spIcYTKqVdzOkXLEG9ehpk/img.png)
1. 리눅스와 AIX의 차이점: yum, apt가 없다리눅스에서는 CentOS의 yum이나 Ubuntu의 apt를 통해 쉽게 패키지를 설치할 수 있지만, AIX에는 이러한 패키지 관리 도구가 기본적으로 없다. AIX에서 필요한 소프트웨어는 직접 다운로드 후 설치해야 한다. 이 과정에서 적절한 패키지를 찾는 데 시간이 많이 소요될 수 있다.2. AIX Toolbox for Open Source SoftwareAIX에서 오픈소스 패키지를 쉽게 찾기 위해 AIX Toolbox for Open Source Software 사이트를 활용할 수 있다. IBM이 제공하는 이 사이트는 GNU 및 오픈소스 툴을 AIX용으로 제공하며, 패키지 이름 뒤에 지원하는 AIX 버전이 명시되어 있어 필요한 버전을 쉽게 선택할 수 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/oAwXk/btrvHiYHcon/n5M3jJbI7wuI4jFC0bbQfk/img.png)
1. 이상적인 PS1 설정의 필요성AIX에서 작업할 때 효율적이고 익숙한 프롬프트는 가독성과 작업 속도에 큰 도움을 준다. 사용자 이름, 호스트 이름, 현재 디렉토리 정보가 포함된 PS1 설정을 통해 빠르게 환경을 파악할 수 있다.2. PS1 설정 방법이상적인 PS1 프롬프트 설정을 위해 다음 단계를 수행한다.시작 파일 수정시스템 시작 파일 중 하나인 ~/.profile 파일을 연다.$ vi ~/.profilePS1 변수 추가사용자 이름, 호스트 이름, 현재 디렉토리 정보를 포함한 프롬프트를 설정하기 위해 다음 내용을 추가한다.export PS1="[$USER@$HOSTNAME "'${PWD##*/}'"]\$ "파일 저장 및 실행설정이 완료되면 esc를 누른 후 다음 명령어로 저장하고 종료한다.:wq설정..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c99RW5/btrukgGXOSf/7A9FJh1zdNuHzIlkjCk0r1/img.jpg)
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 26837 11604 8826 41.274% 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 제한 1 ≤ N ≤ 1,000,000 -109 ≤ Xi ≤ 109 예제 입력 1..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/3kKpo/btrt1KBloJc/8QEkwzKKi7sXOQRM4qtSa1/img.jpg)
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 50384 21206 16230 40.777% 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 1..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Lmzy5/btrt4sGCCOs/ot8W5PMZD4EplZaSJL2hK1/img.jpg)
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 58374 23269 18921 40.157% 문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/H2S1V/btrtQoK3nwr/ABzH4wACT4yW0zzzviIum0/img.jpg)
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.15 초 (추가 시간 없음) (하단 참고) 128 MB 133814 36609 31086 28.834% 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 예제 입력 1 2 1 5 예제 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/0Cd4A/btrtCoGA3cQ/HOTj0FCvUhCkb3OHpd1qd1/img.jpg)
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 146246 57731 46030 39.096% 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 Mississipi 예제 출력 1 ? Solution https://github.com/anothel/BOJ/blob/main/python/..