직각삼각형 조건 공식 \-> 피타고라스 사용a^2 + b^2 = C^2 가 true일 때 rightfalse일 때 wrong 출력틀렸습니다while문의 조건을 쉽고 명확히 하기 위해 if문에 break를 사용 (틀렸습니다)빗변을 정확히 정하지 않아 계속 틀렸습니다. 이
https://www.acmicpc.net/problem/30802티셔츠는 남아도 되지만 부족해서는 안된다펜은 남거나 부족해서는 안 되고 정확히 참가자 수만큼 준비되어야 합니다.티셔츠 묶음 수가 잘 이해 안됐다.에서 5개가 한 묶음이라고 했으니3 > 1묶음1
https://www.acmicpc.net/problem/2798전수조사로 모든 합의 경우를 보는 방식으로 한다. 처은엔 i j h 의 초기식을 0으로 하고 if문을 이용하여 3개의 수가 겹치지 않게 하려고 했으나 계속해서 실패하여 초기값 세팅방식을 바꾼다.(
https://www.acmicpc.net/problem/1259length를 기준으로 for문을 돌리면 풀 수 있다.(정답)이때 유의해야할 사항이 ni != nlen - i - 1에서 -1을 하지 않으면 문자열의 뒷 인덱스를 가리킨다
https://www.acmicpc.net/problem/2609최소공배수는 유클리드 호제법을 이용해서 구할 수 있다.a에는 최대공약수가 저장되어있다.최소공배수는최소공배수 구하는 법 : 수1 \* 수2 / 최대공약수로 구하면 된다.이를 이용해서 문제를 풀면 된
이항 계수를 구하는 문제이다.이 공식을 사용하기로 한다.(실패)입력5 2출력 12원래 10이 되어야 한다.(성공)종료식의 조건에 같다는 조건을 추가해 주었더니 해결되었다.교훈 : 손으로 써보자
오늘은 BOJ 1406번 '에디터' 문제를 풀며 겪은 시행착오와 해결 과정을 정리해보려고 합니다.이 문제는 문자열 편집기를 구현하는 것으로, 커서를 이동하고 문자를 삽입/삭제하는 동작을 정확히 수행해야 합니다.주어진 명령을 효율적으로 처리하기 위해 STL 컨테이너를 어
BOJ 5397번 '키로거' 문제는 키보드 입력 시 백스페이스, 방향키, 문자 삽입을 구현하는 문제입니다.이 문제에서는 효율적인 자료구조 선택과 입력 처리가 핵심이며, 특히 여러 테스트 케이스를 처리하는 과정에서 예상치 못한 문제들을 마주칠 수 있습니다.'<':
백준 11724번 "연결 요소의 개수" 문제를 풀어보겠습니다. 방향 없는 그래프에서 연결 요소(Connected Component)의 개수를 구하는 기본적인 그래프 탐색 문제입니다.문제 요약:정점의 개수 N (1 ≤ N ≤ 1,000)간선의 개수 M (0 ≤ M ≤ N
요세푸스 문제는 N명의 사람이 원 형태로 앉아있고, K번째 사람을 계속 제거해나가는 문제입니다. 마지막에 남는 사람이 누구인지, 또는 제거되는 순서를 구하는 것이 목표입니다.예시: N=7, K=3인 경우1\. 1,2,3,4,5,6,7이 원형으로 앉아있음2\. 3번째인
백준 2493번 탑 문제는 일직선 위에 놓인 탑들이 레이저 신호를 발사할 때, 각 탑의 신호를 수신하는 탑의 번호를 찾는 문제입니다. 각 탑은 자신보다 왼쪽에 있으면서 자신보다 높은 탑 중 가장 가까운 탑에게 신호를 보냅니다.처음에는 탑의 높이만 저장하면 될 것 같았습
처음에 푼 코드가 테스트케이스는 통과했지만 로직이 이상하다는 것을 알았습니다.스택에 수를 넣기 전필요한 만큼 st.pop()을 하고cnt += st.size()를 합니다.그리고 st.push()를 해야 한다는 것을 알았습니다.또한 O(n²)이므로 오버플로우가 발생할 수
테스트케이스는 맞지만, 이중 반복으로 인해 O(n²) → 시간초과가 발생했습니다.아이디어: “아직 오큰수를 못 찾은 인덱스”를 스택에 저장현재 값이 스택 상단 인덱스의 값보다 크면, 그 인덱스의 오큰수로 현재 값을 기록하고 pop모든 원소를 한 번씩만 스택에 넣고 빼므
stack<pair<int,int>> 사용: (키, 같은 키의 연속 개수) 저장쌍의 개수 합은 커질 수 있으므로 ans는 long long시간 제한 1초 → 단 한 번 순회현재 사람의 키 h, 같은 키 개수 same 사용작은 키 제거: h보다 작은 키를 모두
push X : 뒤에 X를 넣기pop : 맨 앞 원소 출력 후 제거 (없으면 -1)size : 원소 개수empty : 비었으면 1, 아니면 0front : 맨 앞 원소 (없으면 -1)back : 맨 뒤 원소 (없으면 -1)std::queue<int> 사용, 각 연
1..n을 큐에 넣고, 맨 앞 버림 → 다음 카드 맨 뒤로 이동을 반복.큐 연산(pop, push, front)은 모두 O(1) → 전체 O(n).1..n을 큐에 삽입큐 크기 > 1 동안:맨 앞 카드 pop() (버림)그다음 카드 값을 push(front())로 뒤에
1..n을 덱에 넣고, 매 타겟 tg에 대해 왼쪽/오른쪽 회전 중 더 적은 쪽으로 돌린 뒤 pop_front().인덱스 tgci를 찾아 tgci <= size/2면 왼쪽 회전 tgci번, 아니면 오른쪽 회전 size - tgci번.회전할 때마다 ans++로 누적.
덱(deque<int>)에 수를 담고, R은 뒤집지 말고 불리언 rev만 토글.D는 rev가 꺼져 있으면 pop_front(), 켜져 있으면 pop_back().입력 배열 문자열은 직접 파싱(\[…]에서 숫자 토큰만 추출).시도 1) R()에서 실제로 덱을 뒤집음
초기 구현: 윈도우가 찰 때마다 전체를 훑어 최소 갱신 → \*\*O(n·L)\*\*라서 시간 초과.전환: 단조 증가 덱(monotonic queue) 유지 → 각 원소가 최대 한 번씩만 push/pop → O(n).새 값 temp를 넣기 전, 뒤에서부터 temp 이상
한 줄씩 읽어서 .이면 종료.(, \[는 스택에 push.), ]를 만나면 스택 top이 각각 (, \[인지 확인 후 pop. 아니면 실패.끝났을 때 에러가 있거나 스택에 뭐가 남아 있으면 no, 아니면 yes.각 줄 길이를 L이라 하면 O(L).다른 문자들은 전부 무
여는 괄호 (: 스택에 push → 현재 열려 있는 막대 수를 의미.닫는 괄호 ):직전 문자가 (이면 () → 레이저: 방금 연 (를 pop 하고, 현재 열려 있는 막대 수만큼 조각이 늘어남 → ans += st.size().아니면 막대의 끝: 해당 막대 하나가 끝났으
스택엔 마커만 넣음: (→-1, \[→-2진행 중 곱(temp) 유지:( 만나면 temp \*= 2, \[ 만나면 temp \*= 3바로 닫히는 ()·\[]를 만나면 현재 temp를 ans에 더함닫을 때는 해당 배수를 나누고(pop), 불일치면 실패 처리문자·숫자 혼용
1로 이루어진 연결 덩어리를 BFS(4방향) 로 탐색.덩어리 시작점을 만나면 cnt++, BFS로 해당 그림의 넓이 area를 세고, 최대값 broad 갱신.전체 격자 순회.adj\[i]\[j] == 1 && !vis\[i]\[j]이면 큐에 넣고 BFS 시작:방문 체크
미로는 가중치가 없는 그래프 → BFS로 최단 칸 수 계산.vis\[x]\[y]에 방문 여부 대신 \*\*시작점부터의 거리(칸 수)\*\*를 저장.시작 (0,0)을 1로 두고 사방 탐색하며 vis = 이전 + 1.입력을 문자열로 받아 adj\[i]\[j] = temp\
모든 익은 토마토(1)를 초기 큐에 넣고, 방문(vis)을 1로 표시.빈 칸(-1)은 애초에 방문 처리해서 나중에 미방문 검사에서 제외.하루 경계를 잡기 위해 큐에 \*\*센티널 (-1,-1)\*\*을 넣고, 레벨이 끝날 때마다 ans++.확장은 \*\*adj==0(안
불과 지훈을 각각 BFS로 처리.불은 멀티 소스 BFS: 모든 F를 큐에 넣고 도달 시간 vis_fire 기록.지훈은 vis_jh로 이동 시간 기록. 다음 칸으로 갈 때벽( \* \*\*불이 도착하지 않았거나\*\* 불 도착 시간이지훈의 다음 시간\`보다 엄격히 늦을