c++에서 공백을 포함한 문자열을 받는 방법을 알게 됐다! 첫 시도에 답이 이상하게 나와서 문제를 찾다가 애초에 input으로 받은 값이 공백 기준으로 잘린다는 것을 확인함. c++에서 공백 포함한 문자열을 받기 위해선 getline 함수를 사용해야 한다.getline
이넘에,,코드는...맞는데 왜 자꾸 틀리대...ㅋ그리디로 풀었다. 현재 남은 날짜 중 가장 주가가 높은 날 주식을 팔고 나머지 경우에는 주식을 한주씩 산다. 주가가 가장 높은 날 보유한 주식이 0이라면 아무것도 하지 않는다.주가가 내림차순인 날에 정답이 음수로 뜨는 오
브론즈 문제인데 체감 난이도는 좀 더 높았다. 다른 문제긴 한데 라피신 할 때 풀었던 문제에서 영감을 받아서 비슷한 방식으로 풀었다.삼중반복문 사용해서 서로 다른 세개의 카드를 더한 모든 경우의 수를 찾고 그 중 조건에 맞을 때 min값을 변경했다. min값이 변경될
백트래킹 기본문제. 개어려운데 실버3인가?하는 비교적 낮은 난이도다. 사실 이 문제는 반복문 하나와 재귀함수로 구현할 수 있어서 dfs기초라고 생각하고 풀었는데, 재귀함수를 잘 못 다루니까 식을 참조하고도 이해가 너무 어려웠다. 라피신 하면서 dfs를 야매로 이해하고
알바끝나고 스트릭 채우려고 쉬운 문제 고르다가 찾은 문제... 왜 이게 실버3일지에 대해서 고민하지 않고 문제 자체가 쉽게 느껴져서 풀었다. 그러나 아무리 식을 써도 답이 안 나와서 구글링한 결과 dp문제였다. 어쩐지 이런 문제가 직관적으로 풀리면 실버3일리가 없지 ̄へ
어제 자기 전에 dp문제 풀고나서 감이 좀 잡히는 느낌이라 다른 dp문제 골라서 풀어봤다. 그냥 피보나치 수열 구하는게 아니고 0과 1이 몇번 쓰였는지 알아내야 해서 식 자체는 무척 간단했고, 풀이를 dp로 도출해내면 된다는 힌트를 알고 있었기 때문에 쉽게 풀었다. 위
어제였나 그제 큰 수의 배열을 선언하면 프로그램이 꺼지는데 왜 그럴까 하는 이야기를 쓴 기억이 있는데 그 이유를 찾았다. <a href ="https://ko.wikibooks.org/wiki/C\_%ED%94%84%EB%A1%9C%EA%B7%B8%EB
BaekjoonHub백준에 제출한 풀이를 깃허브에 연동할수 있도록 도와주는 프로젝트이다. 여태까지 수동 push가 귀찮아서 깃허브 업로드를 미루고 있었는데 이런걸 진작 알았으면 좋았을 것 같다. 너무 편하다. \*^\_\_\_\_^\*DFS를 연습하려고 찾아낸 문제인데
문제 제목만 봐도 대충 느낌이 왔다. 아 이 문제는 dfs로 푸는 문제겠구나 하는...풀었는데 틀렸다. 이번에도 문제에 나온 테스트 케이스를 돌려보면 맞는데 백준에서는 틀렸다고 한다. 이유야 찾아보면 나오겠지만 당장은 모르겠다...-\_-...
11724(사진 이후에 업데이트)처음으로 dfs문제 풀이 안 보고 완전히 내 힘으로 풀었다! 뿌듯하다. 오늘은 꼭 스스로 풀어봐야지 하는 마음가짐으로 손 댄 문제였는데 운이 좋았는지 스터디 준비하면서 풀었던 음료수 얼려 먹기라는 문제와 비슷했다. 로직은 그 문제에서 대
11726 백준 문제전형적인 다이나믹 프로그래밍 문제였다. n이 1부터 5일때의 경우의 수를 하나씩 그렸는데 아래와 같다. 이 그림을 표로 정리하면 아래와 같다.뭔가... 이제 이런 표만 보면 너무 익숙한 느낌이 든다. 응 피보나치~설마하고 n이 6일 때도 머리 굴려가
boj9095dp 카테고리에서 찾은 문제였는데 점화식은 찾았으나 입증할 방법이 없어서 조금 더 신빙성이 있는 dfs로 풀었다. 내가 찾은 점화식은 n이 4이상일 때 dp(n)=dp(n-1)+dp(n-2)+dp(n-3)이었는데 아마 dp 카테고리에 있으니 맞을거 같다.
재귀로 풀었다. 스터디 준비하면서 dfs/bfs풀 때 비슷한 유형의 문제들을 많이 겪어봤는데 덕분에 로직은 쉽게 떠올랐다.x,y좌표와 한 변의 길이를 함수로 보냄모든 면이 1이면 b카운트, 0이면 w카운트위에 해당되지 않으면 네개의 구역을 다시 함수로 보냄한 변의 길이
이전에 스터디 진행하면서 utility 헤더 안 쓰고 pair쓰는 코드를 처음으로 봤는데 왜 가능한건지 의문이었다. 그런데 스터디 준비하며 관련 자료 찾아보니 utility헤더 안의 pair는 vector나 algorithm헤더 등에 포함돼있기 때문에 따로 헤더를 추가
비트마스크 문제였다. 비트마스크가 뭔지는 모르겠는데 이 문제는 특정 범위의 값을 0과 1로 만드는 간단한 문제였다. 비슷한 유형의 문제를 많이 접해봤는데 비트마스크에 대해서 다루는 문제가 많은 것 같다. 스터디 끝나면 이 주제도 정리해봐야겠다.문제 자체는 쉬웠으나 입력
전형적인 플로이드워셜 알고리즘... dfs/bfs 분류에도 속해있다는데 그것도 대충 로직은 그려진다. 이전에 촌수계산 문제 풀었을 때와 비슷한 문제인 것 같다. 일단 오늘 학습한 내용으로 풀었는데 나중에 bfs 연습문제로 풀어보면 좋을 것 같다.삼중반복문 돌려서 최단거
bfs/dfs를 꾸준히 안 풀면 감을 잃을 것 같아서 풀어봤다. 자만하다가 결국 내 힘만으로 풀지 못해서 이전에 다른 bfs문제를 풀었던 방식을 참고했다. ㅜㅜ그림 1의 그래프를 탐색하기 위해서 main에서 이중반복을 돌린다. main의 이중반복에 조건 충족하는 노드(
bfs 연습문제로 풀어본 문제코드를 참고한 뒤에 '아, 나 이 문제를 접해본 적이 있구나.' 싶었어서 현타왔다. 알고리즘 스터디 하면서 나왔던 난이도 중상짜리 문제와 푸는 방식이 비슷했다. bfs/dfs의 코드 구현은 대부분 비슷하기 때문에 문제풀이를 위해서는 미묘한
탭으로 작성 수정필요오랜만에 연습문제로 간단한 bfs문제를 풀었다. 최근 바쁘다는 핑계로 지나치게 쉬운 난이도의 문제만 연속적으로 해결했다. 그래서인지 기본적인 bfs도 구현 방법이 바로 연상되지 않았다. 어제 libft과제를 해결해서 이제 여유로워질것 같다. 남는 시
dfs로 풀었다. 코드 수정 전에는 set_visit() 함수에서 초기화를 visit 배열만 수행했는데, 이게 문제였다.w와 h를 매번 갱신하므로 문제가 없을거라고 생각했는데 visit을 0으로 초기화해버리니, 이전 테스트보다 w나 h가 작은 경우 범위를 넘어간 값도
아 왜~.~.~.~.~!맞왜틀\~~.~.~!!!!!!!!!! 그러나 컴퓨터는 틀리지 않는다.이전에 스터디하면서 봤던 플로이드 워셜 알고리즘을 사용해서 풀었다. 반례를 찾고 싶은데 내 머리로는 벽에 부딪혔다. 찾아본 예시에서는 모두 잘 동작하는데 어디가 문제일까?이 문제
코드 컴파일안됨 수정필요!! 14502 연구소 그래프 크기가 88이라서 모든 조합을 판단했을 때 최대 6463*62개 경우의 수를 모두 bfs돌려도 복잡도에 이상이 없었다. 그래서 완전탐색을 실행했다. 그래프를 입력받은 뒤에 값이 0인 임의의 노드를 1로 바꾼다
bfs로 풀었다. 실버 문제로 연습하고 접근하니까 골드 문제도 스스로 풀 수 있게 됐다. 뿌듯. 그래도 좌표 쓰는 문제는 여전히 어렵다ㅜ로직은 적록색약인 방문기록과 비적록색약인 방문기록을 나눠서 관리하는 것이다. bfs_rgb()와 bfs_rb()를 함수로 나눴다.제목
위의 그림에서 엉킨 전깃줄을 풀기 위해 제거해야 되는 최소 전깃줄 개수를 구하는 문제이다. 처음에 문제 이해를 잘못해서 전깃줄을 짝에 맞게 정렬하기 위해 연결해야 하는 최소 개수를 구하는 문제라고 생각했다. 그런데 내 생각보다는 간단한 문제였음ㅎ식을 생각해내는건 금방
문제를 이해 못해서 엄청 해매다가 블로그에서 문제 풀어서 설명한 것 듣고 겨우 이해해서 풀었다두번째 줄에 출력해야 하는 Hamming Distance는 각 자리의 Hamming Distance의 누적합이다.Hamming Distance는 그 자리에 쓰인 알파벳이 아닌
강남 침수로 클러스터에 못가게 된 오늘의 상황이 떠오르는 문제를 풀었다. 어제 외출했다가 클러스터에 들릴까 생각했었는데, 들렸으면 집에 못 돌아올 뻔 했다. 사진으로만 봐도 피해가 심해보이는데 빨리 정상화되길문제 설명이 빈약해서 방향 잡기가 다소 난해했다. 그러나 안전
10ra최대 100 \* 100크기의 통로에서 가장 큰 음식물을 출력하면 된다. 그래프를 탐색하면서 연결된 노드 개수만 알아내면 된다.자료를 전부다 입력받는게 아니라 음식물 쓰레기가 있는 위치만 입력받기 때문에 좌표에 대한 이해가 필요하다. bfs로 풀기 위해 queu
오랜만에 그래프 탐색이 아닌 다른 문제를 풀어봤다. 자료 입력 조건이 최대 1e9이기 때문에 이진탐색을 이용해서 푸는 문제라는 감이 왔다. 처음 문제에 접근할 때는 m명의 조카에게 과자를 나눠줄 수 있는지, 잘라서 줘야한다면 그 개수를 어떻게 셀 것인지 등 지나치게 조
graph와 visit배열을 따로 만들어서 한번 처리한 값을 다시 처리하지 않도록 함queue사용해서 너비우선탐색 연산으로 붙어있는 배추를 하나의 묶음으로 처리함
문제 보자마자 dp문제인가 싶었다. 어떤 느낌인지 감은 잡히는데 확신이 안서서 문제 분류를 봤는데 dp였다.점화식을 세우기 위해 몇가지 로직을 생각했다. 이전항과 연관되는 부분을 찾았는데, 현재 항을 기준으로 왼쪽 위 혹은 오른쪽 위의 항과 현재 항의 값을 더한다.그러
배낭문제라는 문제유형을 알아야 한다. 배낭의 용적 가능 무게가 k일 때 n개의 물건(각 물건에는 w:무게, v:가치가 존재함)이 존재한다면 배낭에 담을 수 있는 물건의 최대 가치는 몇인지 구하는 문제이다.dp를 사용하지만 처음 접하는 문제이기 때문에 풀이를 자세하게 적
이전에 풀었던 문제와 비슷한 유형으로 파싱하면 되는 문제였다. 탭으로 풀었는데 배터리가 애매해서 임시저장양과 늑대의 수를 구해야 하는데 조건이 제대로 처리가 안된건지 늑대부분 출력이 이상함 수정필요
시간제한을 못 보고 풀었다가 함정에 빠진 문제이다. 처음 식은 다음과 같았다. 그러나 마지막 테케에서 시간이 오래 걸려서 불안하던 와중 시간초과가 떴다 역시ㅎ반복문을 쓰게되면 v의 수가 크고 a와 b가 작을수록 연산횟수가 늘어나게 된다. 이 문제는 특히나 시간제한이 0
dp로 풀었다. n개의 수를 이중 배열로 비교하며 if (arr\[j] < arr\[i]) 에서 dp\[i] = max (dp\[i], dp\[j] + 1) 을 수행하는 방식으로 풀었다.여기보고 이해했다. dp 어려워최근 문제 풀이에 현타가 와서 이걸 하는게 취업
졸릴 때 짜서 변수 선언도 엉망이고 마음에 안 든다.구간 내 가장 작은 값을 찾아내는 문제라서 와일문 벗어난 start 를 출력해주는데 이걸 계속 mid 출력이라고 생각하고 있어서 한번 틀렸다. 사실 지금도 뭐가 다른건지 잘 모르겠는데 잠깨고 봐야지 안돼서 이것저것 수
거두절미하고 코드 보자. zzzzzㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ나름대로 그래프탐색 문제도 풀 수 있고 브루트포스 문제도 여러개 풀어서 익숙해졌다고 자부하던 상태였는데 이딴 코드를 짜내서 정답처리 받았다. 라피신 할 때가 생각난다. c00의 5번 문제부터 막혔던 내 자신의 나약함
브루트포스 알고리즘 강의 듣기 전에 푼 문제다. 울며 겨자먹기로 해결했다. 처음에는 각 탐색마다 행/열에 있는 색상의 수를 모두 저장하는 식으로 로직을 짰는데 코드가 너무 복잡해졌다. 어차피 출력은 그 중 가장 긴 연속된 색상의 수만 나오므로 그냥 max_e 라는 전
1107 리모컨 문제를 풀기 위해 접근해야 하는 생각이 몇개 있었는데 정리하면 숫자 버튼을 누르지 않고 +, - 만 눌렀을 때 걸리는 횟수 고장난 버튼을 제외시키는 방법 탐색 범위를 정하는 방법 숫자 버튼을 누르지 않고 +, - 만 눌렀을 때 걸리는 횟수 이건
재귀 연습문제로 왕창 풀었다. 이전에 풀고 벨로그에 업로드했던 문제인데 체감상 그때보다 쉽게 푼 것 같다.이전 문제에서 오름차순 정렬 조건만 추가해주면 된다. 다만, 강의와 내 코드에 차이가 있어서 다 정리했다.강의에서는 오름차순 조건을 걸지 않고 재귀함수 인자에 이전
c++의 algorithm 헤더에는 next_permutation과 prev_permutation이 있어서 문제를 쉽게 풀 수 있었다.
순열을 사용해서 계산할 수 있는 문제였다. 원소의 순서가 달라지면 결과값이 달라지기 때문에 next_permutation() 함수를 통해서 원소의 순서를 계속 바꿔가며 브루트포스 탐색을 진행하면 된다.문제를 꼼꼼히 안 봐서 ans = |a\[1]-a\[2]|+|a\[3
N과 M문제를 생각나게 했던 문제다. 거의 유사하다고 본다. 재귀함수 연습하는 기분으로 풀었다.
재귀함수를 사용해서 풀었다. 한달 전까지도 재귀함수==DFS 라는 생각을 갖고 있었는데 부정확한 말이라는게 이제서야 와닿는다. 재귀함수라는 큰 틀 안에 DFS가 포함된다. L개의 알파벳 중 C개를 뽑아서 사용가능한 암호인지 판단해야 한다. C개의 알파엣에 모음이 한글자
내가 생각했던 백트래킹 표준 그 잡채인 문제였다.답이 나왔을 때 : 문자열을 벡터에 저장함다음 경우index가 0이면 일단 문자열에 붙임부등호 비교하여 알맞은 수이면 문자열에 붙임 문제를 대충 읽어서 제대로 접근했는데도 한참동안 답이 왜 저런지 고민했다. (맞왜틀)위의
맞?왜?틀??반례를 못 찾겠어서 아쉽지만 다른 블로그의 풀이를 참고했다.참고한 블로그의 풀이가 되게 잼당.내풀이블로그 참고 풀이
프로그래머스 피로도 문제이 문제는 dfs로 쉽게 풀 수 있다. 내림차순 정렬을 위해 커스텀 컴페어 함수를 작성했다. 최소필요피로도 가 높은 던전부터 탐색해야 더 효율적인 탐색이 가능하다고 생각했기 때문이다. 그러나 던전 개수가 적은 편이고 오름차순 정렬을 사용했을 경우
알고리즘은 생각할 필요도 없이 간단한 문제이지만 eof에 대한 개념을 처음 접해봐서 정리해본다.이 문제는 입력의 끝을 알 수 없다는 특징이 있다. 이런 경우 입력 스트림의 끝을 입력의 끝으로 봐야 하는데 이 때 EOF(end of file)을 확인하면 된다. 1234(
애매하게 BFS/DFS로 분류할 수 있을 것 같은 문제였다. 씨앗을 심을 지점을 구하는 것은 DFS로 구현할 수 있고 DFS내에서 세세하게 조건을 분류할 때 BFS(라기보단 브루트포스...?)스러운 방법을 사용했다.사용한 알고리즘은 단순하지만 구현까지의 사고 과정이 복
22.11.28~22.11.29
22.12.01
첫번째 파이썬 문제풀이 글 *^^*
딕셔너리를 이용해서 풀었다. 파이썬에서 딕셔너리=unordered_map처음에는 를 안썼다. 그랬더니 계속 틀려서 왜이러지 싶었는데 readline을 추가했더니 여전히 틀렸다(?)<틀린코드>틀린만한 구석이 없는데 왜 틀리는걸까 고민하다보니, 문제에서 놓친 부분을
파이썬으로 풀다가 도저히 무한루프에 빠지는 이유를 못 찾겠어서 c++로 옮겨서 풀었더니 맞았던 그런... 문제다. 단순히 구현만 하면 성공인데 파이썬에서는 무한 로딩에 빠져버린다. 아직 문법 숙지를 못해서 그런거같다.<맞은 c++코드><틀린 python 코드
오전에 pccp로 탈탈 털리고 dfs문제에 화풀이했다.
이번에 구름에서 재미있는 챌린지를 진행해서 참여해보게 됐다. ㅎ.ㅎ
프로젝트 매니징 어제 푼 문제보다 체감 상 쉬운 문제였다.
정렬 관련 문제...!
dfs/bfs같은 알고리즘을 사용할 필요도 없이 각 좌표의 상하좌우 8칸을 모두 검사해주면 되는 간단한 문제였다.
그리디 문제였다.
정답은 맞췄는데 조건을 고민해보며 이것저것 수정하다가 얻어걸린 느낌이 들어서 조금 찝찝하다.
dp어려워잉
bfs를 사용해서 해결했다.
문제를 정확히 이해하는데 시간이 소요된 문제였다.
dfs나 bfs로 풀 수 있는 문제였다.
그래프 문제였다.