분류 전체보기

https://www.acmicpc.net/problem/1918 이 문제는 스택을 사용하면 해결할 수 있다.알고리즘은 아래와 같다.1. 문자열을 순차적으로 탐색한다.2. 여는 괄호를 만나면 스택에 push3. 곱하기나 나누기를 만나면 스택의 top이 곱하기나 나누기일 경우 스택에서 빼서 문자열에 누적4. 더하기나 빼기를 만나면 스택의 top을 빼서 문자열에 누적. 이때 여는 괄호를 만나면 스택에서 빼는 작업 종료5. 닫는 괄호를 만나면 스택의 top을 빼서 문자열에 누적. 이때 여는 괄호를 만나면 스택에서 빼는 작업 종료  #include #include #include using namespace std;string infix;string postfix;int main(){ ios::sync_w..
https://www.acmicpc.net/problem/2206 이 문제는 BFS를 사용하면 된다.시작 위치는 1, 1부터로 나와있지만 배열 사용의 편의 상 0,0을 시작위치로 결정하였다. 이 문제의 BFS의 방문 표시는 3차원 배열로 표시해야한다.벽을 부수고 이동하는 경우와 부수지 않고 이동하는 경우가 존재하는데벽을 1번 부시면 다음번에 벽을 만났을 때 부술 수 없기 때문이다.// [row][column][1] == 벽을 부수지 않은 상태에서의 해당 칸에 도착하는 데에 이동한 칸의 개수 // [row][column][0] == 벽을 부순 상태에서의 해당 칸에 도착하는 데에 이동한 칸의 개수  따라서 다음 칸이 벽이고 부술 수 있을 때면 -벽을 부수었기 때문에 큐에 다음 칸의 좌표와 0을 넣어주고, -..
https://www.acmicpc.net/problem/13549 이 문제는 BFS를 통해 해결할 수 있다.BFS를 통해 N에서 K까지 가는 경로 중 최소 값을 구해 출력하는 것이 전부인 문제다.이때 방문 표시는 이동 후 다음 경로를 탐색하기 전 표시해야한다는 것이다.이유는 탐색할 수 있는 경로는 총 3가지인데 이동 전 표시하게 되면, 3가지의 경로를 모두 이동해볼 수 없기 때문이다. #include #include using namespace std;int N, K;int answer = 987654321;bool visited[100001];void bfs(){ queue>q; q.push({N,0}); while(!q.empty()){ int now = q.front(..
https://www.acmicpc.net/problem/14500 테트로미노에 존재하는 블록들은 모두 4칸인 것을 알 수 있다.ㅗ모양을 제외하면, 모든 블록은 depth가 4인 DFS로 구할 수 있다.따라서 ㅗ모양은 shapeN()함수로 구하고 나머지 블록은 DFS로 구할 수 있다는 것을 알 수 있다. dfs의 구현은, 매번 한 칸에 대해 dfs를 시작할 때마다 visited배열을 초기화하는 것이 아닌, dfs의 특징을 살려 다음 뎁스로 넘어가기 전 visited[nextR][nextC]를 체크하고, 다시 돌아올 때 visited[nextR][nextC]를 해제하는 방법을 사용할 수 있다. 뎁스가 깊어질 때마다 방문한 칸은 체크해야 하지만, 하나의 테트로미노(한 번의 뎁스4까지 탐색)이 끝나면 다시 방..
https://www.acmicpc.net/problem/30804 탕후루를 끼울 때 순차적을 끼울 수 있다고 생각하고, 다른 종류의 과일이 2보다 클 경우 앞에서 부터 과일을 제거하면 해결할 수 있다.따라서 1  과일 값을 입력 받은 후 cnt배열에 값이 0인지 검사(처음 끼우는 과일인지 검사) 한 후 cnt배열의 값을 1증가시킨다.이 후 처음 끼우는 과일인 경우 other 변수를 1 증가(과일 종류를 세는 변수)시킨다. other 변수의 값이 2보다 큰 경우 queue에서 과일 하나를 빼고 cnt 배열에서 값을 1 감소시킨다. (과일을 제거했기 때문)만약 제거한 과일이 탕후루 꼬치에 존재하지 않는 과일(cnt배열의 값이 0)인 경우 other 변수를 1 감소시킨다. 큐의 과일 개수를 구하고 정답 변수..
https://www.acmicpc.net/problem/6064 카잉달력은 에서 까지 존재하며, 해에는 멸망의 해가 된다.또한 의 다음해는 x 따라서 M = 10, N = 12인 경우 , , , , , , , , , , , ...이 된다. 카잉 달력의 51번째 해를 구할려면 어떻게 해야할까?51번째 해는 M인 10이 5번 들어가고 그 후 1해가 지나가면 51번째 해가된다. ( x = 1 )마찬가지로 N인 12가 4번 들어가고 그 후 3해가 지나가면 51번째 해가된다. ( y = 3 ) 멸망해는 M과 N이 동시에 들어가는 최소공배수가 된다.위 조건대로 멸망해의 최소공배수를 구하면 60이 된다.  먼저 예제의 경우를 보자10 1239i = 3i = 13i = 23i = 33 .....이런식으로 for문을 ..
· .net
컴포넌트 분리const Item = ({item, drag, itemImgObj}) =>{ return( )}export default Item;import Item from './Item';const ItemCollection = ({items,drag, imgArr})=>{ return ( { items.map((item)=>(item.ranking === 0) ?o.id === item.imageId)}/> :null) } )}export default ItemCollection; 이벤트 리스너 생성import Re..
· .net
Grid 만들기src/Components에 RankingGrid.js 생성const RankingGrid = ({items, imgArr})=>{ const rankingGrid = []; const cellCollectionTop = []; const cellCollectionMiddle = []; const cellCollectionBottom = []; const cellCollectionWorst = []; const pushCellMarkupToArr = (cellCollection, rankNum, rowLabel)=>{ if(rankNum > 0){ var item = items.find(o=>o.ranking === rankN..
hanseongbugi
'분류 전체보기' 카테고리의 글 목록 (4 Page)