본문 바로가기

전체 글241

[백준 1987] 알파벳 (C++) https://www.acmicpc.net/problem/1987DFS알파벳으로 구성된 보드판에서 좌측상단부터 시작해서 중복되지 않은 칸을 지나면서 상하좌우로 이동할 수 있다.이때 최대 몇칸까지 지날 수 있는지 구하는 문제 접근 방법상하좌우 이동하는 경우들로 DFS로 풀었다. 오답노트처음에 지나온 알파벳들을 기억하려고 벡터에 지나온 문자들을 담아두고 찾는 식으로 했다가 시간초과나서알파벳 개수 (26)만큼 boolean 배열에 방문 여부 체크하면서 가는걸로 고쳤다. 아 그리고 visit 배열 처음에 0으로 초기화 안해줬더니 랜덤값 들어가던데 (아니 그냥 Int 배열은 다 0 들어가더만) 근데 왜 DFS함수 시작할 때 방문하는걸로 하면 왜 안될까유그러면 visit배열을 다시 false로 바꿔주지 않아도 되는.. 2024. 7. 9.
[백준 9935] 문자열 폭발 (C++) https://www.acmicpc.net/problem/9935 평범한 문자열1개와 폭발 문자열1개를 입력받고, 평범한 문자열에서 폭발 문자열은 모두 사라지게 한 결과를 출력하는 문제폭발문자열이 사라짐으로 인해 합쳐진 문자열이 또다시 폭발 문자열을 포함한다면 그것도 폭발시켜야함! 접근방법Swift String의 range와 replacesubrange를 사용해보았는데 대차게 시간초과 떠서,,얌전히 C++로 풀었다네요ㅋㅋ,,Stack문제는 Stack으로..접근방법을 한마디로 요약하면 "Stack에 문자를 하나 넣을 때 마다 폭발물을 검사하자"입니다.평범한 문자열을 모두 순회하면서 한글자씩 Stack에 넣을 건데요, 이때 한글자가 들어갈 때마다폭발물 문자열 길이 만큼 스택 상단의 문자열을 뽑아서 폭발물인지.. 2024. 7. 3.
[백준 9184] 신나는 함수 실행 (C++) https://www.acmicpc.net/problem/9184if a 20 or b > 20 or c > 20, then w(a, b, c) returns: w(20, 20, 20)if a 이 문제는 -50~50 범위의 정수인 a,b,c가 주어지면 w(a,b,c)를 구해서 출력하는 문제다. 접근방법입력받는대로 계산할 수도 있지만 그러면 재귀함수를 너무 많이 호출하게 돼서 시간복잡도가 커지는 문제 -> 그래서 DP로 풀어야 하는데이번에도 다 저장해두고 사용하는 방법으로 풀었다. 그래도 계산하는 횟수가 101*101*101 정도라 시간초과가 안나는 것 같다.3차원 배열 arr[a][b][c]에 3중 반복문을 돌면서 차례차례 값을 저장한다. 숫자 하나라도 0 이하면 함숫값이 1이기 때문에 차곡차곡 .. 2024. 7. 2.
[백준 11660] 구간 합 구하기 5 (C++) https://www.acmicpc.net/problem/11660  DP 동적계획법이런 표에서 주황색 점 위치(시작점)와 파란색 점 위치(끝점)가 주어지면, 빨간테두리의 박스에 속한 숫자들의 합을 구하는 문제근데 이제 빨간 박스가 M개 주어지고 M이 100,000까지 될 수 있고, NxN에서 N은 1024까지 될 수 있는.. 접근 방법처음에 엥 표 저장해두고 [r1][c1] ~ [r2][c2] 까지 다 더하면 되는거 아닌가? 했지만 실버1인걸 보고 DP로 풀었음..이전에 내가 생각해온 DP는 미리 구해놓고 쓰기 였는데 예를들면 한 행에서 각 원소의 값을 그 원소까지의 합으로 치환한다.위의 표에서 첫번째 행을 예로들면, 1 2 3 4 -> 1 3(1+2) 6(1+2+3) 10(1+2+3+4).이때 치환할.. 2024. 6. 24.
[백준 15664] N과 M (9) (C++) https://www.acmicpc.net/problem/15663 백트래킹N과 M (5)와 비슷하게 N개의 자연수 중에 M개를 뽑아 만들 수 있는 수열을 모두 사전순으로 출력하는 문제인데차이점은 N개의 자연수가 중복가능임그래도 N개의 숫자 중에 M개를 뽑아야 하는 것을 변함이 없어서그냥 중복된 숫자가 있는 숫자 카드가 N개 있고, 그 중 M개를 뽑아서 나열한 수열을 중복되지 않게, 사전순으로 출력하믄댐! 접근방법N과 M(5) 코드에서 수열을 담고 있는 배열을 vector가 아닌 set으로 바꿔주면 됨~setvectorint>, lessvectorint>>> 이렇게 선언하면 사전순으로 수열이 정렬되어서 set에 들어감 오답노트set에서 vector 정렬 안될 줄 알고 string으로 넣었다가 9, 10 .. 2024. 6. 22.
[백준 15654] N과 M (5) (C++) https://www.acmicpc.net/problem/15654 백트래킹N개의 서로 다른 정수가 주어지고, 그 중에 M개를 뽑아서 만들 수 있는 가능한 수열을 사전순으로 모두 출력하는 문제 접근 방법백트래킹으로 재귀함수 써서 풀었다.재귀함수 파라미터로는 n, m, 수열을 담고 있는 배열(candidate), n개의 숫자의 방문여부를 담고 있는 배열을 갖고 다녔음입력받은 n개의 숫자를 num array에 넣어두고(sort해줌 - 사전순으로 출력하려고), 수열의 첫째자리 부터 담아가면서 방문여부 체크하고재귀함수 호출하기 반복그러다가 수열이 m자리가 되면 결과 배열에 넣고 재귀함수를 종료함 코드를 좀..지저분하게 쓴 것 같긴한데..차차 나아지겠죠머 오답노트아 근데 C++ 백준에서 돌릴 때 vector.si.. 2024. 6. 22.
[백준 18406] 럭키 스트레이트 (C++, Swift) https://www.acmicpc.net/problem/18406 구현, 문자열머선 문제냐 하면123402 라는 문자열이 주어지면, 반갈죽!해서 양쪽 자릿수 합이 같은지 확인하는 문제임같으면 LUCKY 출력, 다르면 READY 출력*문자열은 늘 짝수자릿수 (즉 12345 같은 5자릿수 안들어옴) 1234021+2+3 = 6, 4+0+2 = 6 이니 이건 LUCKY 접근방법C++for 문을 두개 써서 front, back 변수에 각각 앞부분의 합과 뒷부분의 합을 저장하고 둘을 비교함swift배열하나 두고, prefix, suffix로 배열 쪼개서 reduce로 합 구해서 바로 비교하고 출력 (고차함수 쓰고 싶어서 swift로도 풀었는데, string -> int 배열 만들려다가 고군분투함..) 오답노트-.. 2024. 6. 20.
[백준 1439] 뒤집기 (C++) https://www.acmicpc.net/problem/1439 그리디, 문자열S=001100 이런 이진수로 구성된 문자열이 주어지고, 연속하는 같은 숫자는 한꺼번에 뒤집을 수 있음이때 모든 문자를 같은 문자로 만드려면 최소 몇번 뒤집어야할까! 가 문제임 접근방법1. 0과 1 각각 묶음의 갯수를 구함2. 둘 중 최소를 출력함 (단, 둘 중 하나가 0인 경우 = 원래도 모두 같은 문자로 구성된 문자열이었다는 거 -> 0 출력)끄읕~ 오답노트- C++에서 string.size()가 unsigned int 인가 그래서 바로 for문 조건에 넣어버리면 오류나서 한번 변수로 담아줘야함..(원래 이랬나..)- cur(현재 연속하고 있던 문자)를 안바꿔줘서 틀렸었음~앗차차- cout 안에 삼항연산자 안들어가고 밖에.. 2024. 6. 20.
[백준 3190] 뱀 (C++) https://www.acmicpc.net/problem/3190 구현그 snake 게임? 생각하면 될 듯N * N 보드에서 길이 1짜리 뱀으로 시작해서 한칸씩 늘리면서 이동하면서도처에 위치한 사과들을 먹으면 길이가 +1 되고, 못 먹으면 길이가 유지되는 (그래서 꼬리가 이동함 - 사라짐)입력으로는 사과의 위치와 S초후에 바뀌는 방향이 주어진다.-> 머리의 방향을 바꿔가면서 한칸씩 이동하는 스네이크 게임~종료 조건: 벽에 닿거나, 본인과 본인의 머리가 부딪힐 경우 접근방법구현문제여서 시뮬레이션으로 풀었다.- 정사각보드 구성: 2차원배열로 격자판을 만들어 놓고, 빈칸은 0, 뱀은 1, 사과는 2로 설정했다.- 뱀의 이동 방향: 오른쪽, 아래, 왼쪽, 위 순서대로 방향 배열 선언해둠 (dr, dc), 왼쪽으.. 2024. 6. 20.
[2020] MCAF: Developing an Annotation-Based Offloading Framework for Mobile Cloud Computing https://www.hindawi.com/journals/sp/2020/5304612/ MCAF: Developing an Annotation-Based Offloading Framework for Mobile Cloud Computing Offloading computation from mobile to remote cloud servers is a promising way to reduce energy consumption and improve the performance of mobile applications. However, a great challenge arises as automatic integration of powerful computing resources in rem www.hi.. 2023. 8. 2.
Java Persistence 계층의 구조 정리 Java에서 데이터의 영속성(Persistence)를 위해 JDBC가 존재함. JDBC를 이용하여 실제 데이터베이스와 연결하고 상호작용함. JDBC가 제공하는 드라이버를 이용하여 개발자는 실제 DBMS를 고려하여 개발하지 않아도 됨 (ex. Oracle, Mysql 등 모두 각자의 방식대로 관리하지 않아도 됨). 하지만 JDBC만 이용하면서 데이터베이스와 상호작용하는 것은 다소 불편함(추상화레벨이 낮아서 개발자가 관여해서 설정해주어야 하는 것이 많음 - 즉 손댈게 많음). → 그래서 이를 편리하게 하려고 Framework들 등장. 이러한 Framework의 종류에는 두가지가 있는데 하나는 SQL Mapper이고, 다른 하나는 ORM(Object Relational Mapping). SQL Mapper는 .. 2023. 7. 13.
Stable diffusion webui 설치 (window) https://github.com/AUTOMATIC1111/stable-diffusion-webui GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub. github.com 오늘 하루 종일 이거 설치해서 설치 및 오류 해결 과정 남깁니다..~ 일단 anaconda 설치 + CUDA 설치 일단 Python 3.10.6 설치 (상위 버전 안됨) 만약 이미 상위버전의 python이 깔려있으면 conda install pyt.. 2023. 5. 3.