[목차]310 [백준 9935번 / C++] 문자열 폭발 처음에 작성했던 코드이다. #include #include using namespace std; string s1, s2, result; int main() { cin >> s1 >> s2; int pos=0; for (auto c : s1) { result += c; if ((pos=result.find(s2))!=string::npos) { result.erase(result.begin()+pos, result.end()); } } if (result.size())cout > s2; for (int i = 0; i = s2.size()) { if (result.substr(result.size() - .. 백준/구현 2022. 1. 17. [Level_2] 멀쩡한 사각형 (C++) 해당 문제는 로직을 이해를 해야한다. 입출력에서 W = 8 이고 H = 12 로 주어진다고 가정하자. 해당 그림과 같이 4번 반복하는 것이 보인다. 수식화 해보면 W와 H의 최대공약수 만큼 반복된다. 8과 12의 최대공약수는 4이다. 해당 값 뿐만 아니라 다른 값들도 최대 공약수 만큼 반복된다는 것을 임의의 숫자로 구해보면 알 것이다. 반복되는 그림을 한번 살펴보자. 너비가 2이고 높이는 3이다. 이 값들은 W와 H을 최대공약수로 나눈 값이라는 것을 알 수 있다. 그리고 빈칸의 개수는 반복되는 그림의 "너비+높이-1" 인 것을 알 수 있다. 그렇기 때문에 W와 H가 주어진다. 해당 값의 최대공약수는 반복되는 그림의 개수를 뜻하며 각 그림에서의 빈칸의 사각형의 개수는 (너비+높이-1) 라는 것을 알 수 있.. 프로그래머스/Level_2 2022. 1. 17. [Level 2 / C++ / 카카오] 카카오프렌즈 컬러링북 아 진짜 이 문제 너무 스트레스 받았던 문제이다. 아무리 봐도 틀린게 하나도 없는데 기본 예제만 통과하고 최종은 계속 통과가 되지 않았다. 비쥬얼스튜디오까지 켜가면서 확인을 해가며 배열의 변화 과정 까지 차근차근 살펴봐도 틀린 부분이 없었다. 그래서 프로그래머스 질문하기 페이지에 들어가서 확인해봤는데 문제 오류;; 스트레스가 하늘을 치솟았다. 이 문제에 거의 4시간을 쓴거 같다. 해당 문제는 애초에 전역변수를 생성 하지 말라고 한다. 생성한 전역변수를 solution 함수에 다 넣고 파라미터 값을 변수의 주소를 담아와서 구현을 하였다. 그렇게 하니 문제가 통과되었다. 해당 문제는 bfs를 활용하면 쉽게 풀 수 있다. 지금껏 내가 다뤄왔던 bfs 문제는 항상 비슷한 맥락이였다. 구현을 하기에 살짝 변형한 .. 프로그래머스/Level_2 2022. 1. 17. [백준 2178번 / C++] 미로 탐색 해당 문제를 bfs() 를 활용해서 풀었다. bfs나 dfs 를 어느정도 활용 할 줄 아시는 분이라면 쉽게 풀수 있을 것이다. 항상 (1,1) 에서 출발하여 해당 지점부터 map 의 1로 저장되어 있는 부분을 지나가면서 map 의 끝지점까지의 거리를 살펴보면 된다. 첫 시작점부터 map 값이 1인 자리를 visited 배열을 활용해 거리를 갱신해 나간다. 다음 그림을 보면서 어떤식으로 visited가 갱신되는지 확인해보자 그림은 백준 첫 예제를 토대로 그린 것이다. #include #include #include #include #include using namespace std; int map[101][101]; int visited[101][101]; int dx[4] = { -1,0,1,0 }; i.. 백준/DFS BFS 2022. 1. 17. [백준 2979번 / C++] 트럭 주차 쉬운 문제다 1부터 100이라는 시간에 겹치는 차의 개수를 배열에 저장한 뒤 그 배열의 인덱스를 돌아보면서 차의 개수에 따른 값을 sum값에 더해주면 된다. #include using namespace std; int arr[101]; int main(){ int a,b,c; cin>>a>>b>>c; for(int i=0; i>x>>y; for(int j=x; j 백준/구현 2022. 1. 17. [백준 10808번 / C++] 알파벳 개수 쉬운 문제다 알파벳을 의미하는 26개의 배열을 생성하여 문자열이 입력되면 해당 사이즈만큼 돌아보면서 특정 알파벳을 의미하는 배열의 count 값을 올려준다. 여기서 라는 것은 아스키코드로 나타낼수 있다. 만약 s[0] 은 알파벳 a를 뜻하는 거라면 소문자 a 는 아스키 코드값으로 97이다 이 문자에 같은 아스키코드를 갖는 'a' 를 빼주면 값은 0이 된다. 즉, 알파벳을 의미하는 배열 인덱스 0을 가리키게 된다. 만약 s[0] 이 'c' 이고 해당 문자에 -'a' 를 해준다면 99 - 97 이 되어서 값이 2가 된다. #include #include using namespace std; int a[26]; int main() { string s; cin >> s; for (int i = 0; i < s... 백준/구현 2022. 1. 17. [백준 2309번/ C++] 일곱 난쟁이 모든 경우의 수 정렬 벡터를 정렬할 때 정렬 될 수 있는 모든 경우의 수를 물어보는 문제가 있다. 이러한 경우 해당 함수를 사용한다. 즉, A B C 를 정렬하고 싶은데 모든 경우를 정렬하면, ABC ACB BAC BCA CAB CBA 순으로 정 baebalja.tistory.com 이 문제는 next_permutaion 함수를 사용하면 된다. 해당 함수를 모른다면 위의 링크에 가서 한번 숙지하고 오자. 9명의 난쟁이 중에 일곱 난쟁이의 키의 합이 100이 됐을 때 난쟁이의 키를 오름차순으로 출력하면 된다. 즉, next_permutaion 함수를 사용해서 모든 경우의 수를 살펴보면서 첫 인덱스부터 7번째 인덱스까지 합산하여 그 값이 100이면 멈추고 이에 해당하는 난쟁이의 키를 순서대로 출력하면 되는 .. 백준/구현 2022. 1. 17. [JAVA] JVM 구조와 JAVA의 동작 원리 오늘은 JVM 구조와 동작 원리에 대해서 살펴보고자 한다. JVM 구조 JVM 구조는 크게 클래스 로더(Class Loader), 런타임 데이터 영역(Runtime Data Area), 실행 엔진(Execution Engine), 그리고 가비지 컬렉터(Garbage Collector)로 구성된다. 가비지 컬렉터는 이번 포스팅에서 다루기 복잡하기 때문에 추후 포스팅 하도록 하겠다. 1. 클래스 로더 클래스 로더는 JVM 내에서 자바 클래스 파일을 로딩하는 역할을 한다. JVM은 클래스 로더를 통해 필요한 클래스 파일들을 찾아 런타임 데이터 영역에 저장하게 된다. 클래스 로더는 로딩, 링크, 초기화 과정을 거치며, 클래스 파일의 검증 작업도 수행한다. 2. 런타임 데이터 영역 런타임 데이터 영역은 JVM 내.. 개발 일지/Java 2022. 1. 16. [백준 11170번 / C++ / Silver V] 0의 개수 #include using namespace std; int main() { int n; cin >> n; while (n--) { int cnt = 0; int a, b; cin >> a >> b; while (a = 10) { while (x / 10 != 0) { if (x % 10 == 0)cnt++; x /= 10; } } a++; } cout 카테고리 없음 2022. 1. 16. [백준 10989번 / C++ / Silver V] 수 정렬하기 3 #include using namespace std; int arr[10001] = { 0, }; int main() { int n; int max = 0; int i, j; int a; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d",&a); arr[a]++; if (max < a) max = a; } for (i = 0; i < max+1; i++) { for (j = 0; j < arr[i]; j++) { printf("%d ", i); } } printf("\n"); return 0; } 카테고리 없음 2022. 1. 16. 이전 1 ··· 25 26 27 28 29 30 31 다음 반응형