전체 글 27

[리눅스] error while loading shared libraries 오류

./appname.shared 를 하여 실행하려고 했는데 ./appname.shared: error while loading shared libraries: libfuncs.so.1: cannot open shared object file: No such file or directory 오류가 발생하여 실행되지 않았다. 환경변수를 설정하면 해결된다. 먼저 ldd appname.shared를 하여 의존성을 확인해본다. 역시나.. libfuncs.so.1 => not found를 찾아볼 수 있다. 그럼 이제 환경변수를 설정해야 한다. echo LD_LIBRARY_PATH export LD_LIBRARY_PATH=$(pwd)/lib 이 명령어를 연달아 쳐주면 된다. 그러고 나서 다시 ldd.appname.sh..

리눅스 2021.10.16

백준 - 2606 바이러스

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 1. 문제 풀이 아이디어 bfs를 이용해 풀었다. 2. 풀이 코드(C++) #include #include #include #include #define max 101 using namespace std; bool visited[max]; vector graph[max]; void bfs(int started) { int cnt = 0;//웜 바이러스에 걸린 컴퓨터의 수 저장 queue q; q.pus..

백준 - 1755 숫자놀이

https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 1. 문제 풀이 아이디어 정렬을 이용하긴 하지만 정렬을 거들뿐. 1. vector를 pair로 이용할 수 있는가 2. 나누기와 나머지 연산을 적절하게 이용할 수 있는가 이 두 개가 주요한 문제 풀이 아이디어이다. 2. 풀이 코드(C++) #include #include #include #include using namespace std; vec..

[리눅스] multiple definition 오류

/usr/bin/ld: obj/sub.o: in function `add': sub.c:(.text+0x0): multiple definition of `add'; obj/add.o:add.c:(.text+0x0): first defined here /usr/bin/ld: obj/myapp.o: in function `main': myapp.c:(.text+0x64): undefined reference to `sub' collect2: error: ld returned 1 exit status 링크해서 obj파일들을 실행파일로 만드는 중에 이 문제가 발생했다. multiple definition이라는 단어에 집중해 계속 이와 관련된 오류 해결 방법을 찾았다.. 아무리 봐도 헤더파일을 중복해서 넣은 것도..

리눅스 2021.10.12

[리눅스] 띄어쓰기를 안 하면 오류가 난다

쉘 스크립트를 이용해 코드를 짜다가 if문에서 오류가 발생했다. 분명히 문법상으로 틀린 건 없어 보이는데.. 뭐가 문제일까 살펴보니 띄어쓰기를 안 해서 생긴 오류였다. 1. 첫 번째 오류 - syntax error near unexpected token 'then' if[ $as -eq $qw ]; then echo "Hello" 임의의 코드를 간단하게 짜봤다. 이런 오류가 뜰 것이다. if[ $as -eq $qw ] , if와 [ 사이가 떨어져 있지 않고 붙어있어서 발생한 에러다. if [ $as -eq $ qw ] 하면 해결된다. 2. 두 번째 오류 - line n : [nn : command not found if [$as -eq $qw]; then echo "Hello" 이 코드에서 문제점은 if..

리눅스 2021.10.05

백준 - 1302 베스트셀러

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 1. 풀이 코드(C++) #include #include #include using namespace std; map m1; int main(void) { int n; int result = 0; cin >> n; for (int i = 0; i > title; m1[title]++; } for (auto i = m1.begin(); ..

백준 - 1181 단어 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 1. 풀이 코드 (C++) #include #include #include using namespace std; vector v1; bool compare(string a, string b) { if (a.size() == b.size()) { return a < b; //오름차순 정렬 } else { return a.size() < b.size(); } } int main(void) ..

백준 - 1026 보물

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1. 문제 풀이 아이디어 문제의 예제 입력을 통해서 상세히 알아보자. 5 1 1 1 6 0 2 7 8 3 1 이것이 입력이다. 합의 최솟값을 출력하려면 각각 a,b의 곱이 최소여야 한다. 최소를 만드려면 어떻게 하면 될까? 주어진 예제를 가지고 설명해보면, a - 0 1 1 1 6 (오름차순) b - 8 7 3 2 1 (내림차순) 순으로 정렬하면 된다. 2. 풀이 코드(C++) #inclu..

백준 - 1316 그룹 단어 체커

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 1. 풀이 코드(C++) #include using namespace std; int main(void) { int n,cnt = 0; string word; bool flag; cin >> n; for (int i = 0; i > word; flag = true; for (int j = 0; j < word.len..