분류 전체보기
백준 15683 감시 C++
백준 15683 감시 C++
2022.02.09[문제 링크] https://www.acmicpc.net/problem/15683 [입출력 예] 입력 출력 4 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 6 0 0 0 0 0 0 0 20 [소스코드] #include using namespace std; #define X first #define Y second int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int n,m; int board1[10][10]; //사무실 정보 저장용 int board2[10][10]; //색칠용 vector cctv; bool OOB (int a, int b){ return a=n || b=m; } // 위치와 방향을 주면, "그 다음 점부터..
백준 9663 N-Queen
백준 9663 N-Queen
2022.02.09[문제 링크] https://www.acmicpc.net/problem/9663 [입출력 예] 입력 출력 8 92 [소스코드] #include using namespace std; bool isused1[40]; bool isused2[40]; bool isused3[40]; int cnt =0; int n; void func(int cur){ if (cur==n){ cnt++; return; } for (int i=0; i>n; func(0); cout
백준 1780번 종이의 개수 풀이
백준 1780번 종이의 개수 풀이
2022.02.09[문제 링크] https://www.acmicpc.net/problem/1780 [입출력 예] 입력 출력 9 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 -1 0 1 -1 0 1 -1 0 -1 1 0 1 -1 0 1 -1 0 1 -1 1 0 -1 0 1 -1 10 12 11 [소스코드] #include #define endl '\n'; using namespace std; int arr[2187][2187]; int cnt[3]; //0번째 : -1 개수, 1번째: 0 개수 , 2번째: 1 개수 bool checkArr(int r1, ..
백준 17478 재귀함수가 뭔가요? C++
백준 17478 재귀함수가 뭔가요? C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/17478 [입출력 예] 입력 출력 2 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어." __"재귀함수가 뭔가요?" __"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. __마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. __그의 답은 대부분 옳았다고 하네. 그런데 어느 날..
백준 1074번 Z C++
백준 1074번 Z C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/1074 [입출력 예] 입력 출력 2 3 1 11 [소스코드] // 14:37 풀이 시작 #include using namespace std; int arr[2][2]={{0,1},{2,3}}; int func (int n, int r, int c){ if(n==1){ return arr[r][c]; } // 이전 단계에서 한 변의 길이 int prev = 1c; cout
백준 11729번 하노이 탑 이동순서 C++
백준 11729번 하노이 탑 이동순서 C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/11729 [입출력 예] 입력 출력 3 7 1 3 1 2 3 2 1 3 2 1 2 3 1 3 [소스코드] #include using namespace std; void func(int a, int b, int n){ if (n==1){ cout
백준 1629 곱셈 C++
백준 1629 곱셈 C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/1629 [입출력 예] 입력 출력 10 11 12 4 [소스코드] //시작시간 10:48 #include #define ll long long using namespace std; ll func (int a, int b, int c){ if (b==1){ return a % c; } if (b%2 ==0){ return func(a, b/2, c)*func(a,b/2,c)%c; } else { return func(a,b/2,c)*func(a,b/2,c)%c*a%c; } } int main(){ ios::sync_with_stdio(0); cin.tie(0); int a,b,c; cin>>a>>b>>c; cout
백준 1926 그림 C++
백준 1926 그림 C++
2022.02.06[문제 링크] https://www.acmicpc.net/problem/1926 [입출력 예] 입력 출력 6 5 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 4 9 [소스코드] //시작시간 19:05 #include using namespace std; int board[500][500]; int visited[500][500]; int n, m; int dx[4] = {0, 1, 0, -1}; int dy[4] = {1, 0, -1, 0}; int max_area; int cnt; void print_borad() { for (int i = 0; i m;..
백준 5430 AC C++ 풀이
백준 5430 AC C++ 풀이
2022.02.05[문제 링크] https://www.acmicpc.net/problem/5430 [입출력 예] 입력 출력 4 RDD 4 [1,2,3,4] DD 1 [42] RRD 6 [1,1,2,3,5,8] D 0 [] [2,1] error [1,2,3,5,8] error [소스코드] #include #define endl '\n' using namespace std; void push_DQ(string arr, deque &DQ) { string tmp = ""; for (int i = 0; i < arr.length(); i++) { if ('0'
디자이너의 요구사항에 맞춰 개발하기
디자이너의 요구사항에 맞춰 개발하기
2022.02.05들어가며 인테리어 컨설팅 중개 플랫폼 온룸을 개발하면서 가장 처음 부딛친 난관은, "어떻게 화면을 구성할 것인가" 였다. 그 말은 무슨 뜻이냐면, 디자이너의 요구사항을 어떤 식으로 충족시킬 것인지와 같은 말이다. 디자이너의 작업 결과물 디자인 팀에서 내게 넘겨준 작업 결과물은 두 가지로, Figma에 Zeplin을 연동하여 볼 수 있도록 작업해서 넘겨줬다. position:absolute Eng 위치:절대 {"mean":["","오픈","","예제","","VLIVE 자막"],"word":"positionabsolute","basicWord":"positionabsolute","soundWord":"positionabsolute","phoneticSymbol":""} Figma로 전체 화면 구조를 한 눈..
저는 시간을 이렇게 씁니다.
저는 시간을 이렇게 씁니다.
2022.02.05들어가며 저의 닉네임이자 이 블로그의 이름이 자라자인 이유를 아시나요? 자라자에는 무려 세 가지 뜻이 담겨 있답니다. 설명하는 것은 참 낯간지러운 일이지만, 그래도 말해보자면 1. 자라자! (Let's grow up!) 2. 잘 하자! (Let's do it well!) 3. 자라 자(please sleep) 소리를 들을 때까지 열심히 하자. 라는 뜻이 담겨 있지요. 하하. 닉네임으로 이런 이름을 택할 정도로 저는 성장하고 싶습니다. 어제보다 더 나은 오늘을 사는 것이 오늘의 목표이고, 더 유능한 개발자가 되기 위해서 하루하루 공부를 이어가고 있습니다. 성장은 기록에서 나온다 사실 이번 글에서 다루고 싶었던 내용은 성장 자체라기보다 성장을 위한 방법론입니다. 저는 성장을 위해서는 절대적인 시간투자가 필요..
BOJ 1021 회전하는 큐 C++
BOJ 1021 회전하는 큐 C++
2022.02.02[문제 링크] https://www.acmicpc.net/problem/1021 [입출력 예] 입력 출력 10 3 2 9 5 8 [소스코드 - 내 풀이] #include using namespace std; int main(){ //n,m입력받기 int n, m; cin>>n>>m; deque D; //덱에 숫자 채우기 for (int i=1; i>x; while(D.front()!=x){ D.push_back(D.front()); D.pop_front(); tmp++; } if (tmp>D.size()/2){ cnt+=(D.size()-tmp); } else{ cnt+=tmp; } D.pop_front(); } cout n >> m; deque DQ; for (int i = 1; i > t; int i..
백준 2164 카드2 c++
백준 2164 카드2 c++
2022.02.01[문제 링크] https://www.acmicpc.net/problem/2164 [입출력 예] 입력 출력 6 4 [소스코드] #include #include #include #define endl '\n' using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); queue Q; int n; cin>>n; // n 입력받음. for(int i=1; i
백준 10845 큐,큐2 c++
백준 10845 큐,큐2 c++
2022.02.01[문제 링크] https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [입출력 예] 입력 출력 15 ..
백준 6549 히스토그램에서 가장 큰 직사각형 풀이 c++
백준 6549 히스토그램에서 가장 큰 직사각형 풀이 c++
2022.01.25[문제 링크] https://www.acmicpc.net/problem/6549 [입출력 예] 입력 출력 7 2 1 4 5 1 3 3 4 1000 1000 1000 0 8 4000 [소스코드] // Authored by : haneulkimdev // Co-authored by : BaaaaaaaaaaarkingDog // http://boj.kr/d98aedfde0e444509de83f1a21c8ef7e #include using namespace std; #define X first #define Y second int main(void) { ios::sync_with_stdio(0); cin.tie(0); while (true) { int n; cin >> n; if (n == 0) break; s..
백준 3015 오아시스 재결합 c++
백준 3015 오아시스 재결합 c++
2022.01.25[문제 링크] https://www.acmicpc.net/problem/3015 [입출력 예] 입력 출력 7 2 3 1 2 2 5 1 10 [1차시도 - 실패] #include using namespace std; #define ll long long #define X first #define Y second ll a[500000]; int main(){ ios::sync_with_stdio(0); cin.tie(0); ll answer=0; int n; cin>>n; stack s; pairmax_pair ={(ll)INT_MAX +1,n}; s.push(max_pair); //배열에 대입. for (int i=0; i>a[i]; } //반복문으로 오큰수처럼 풀이 for (int i=n-1; i>=0;..
올바른 커밋 남기기 (Refactor vs. Fix)
올바른 커밋 남기기 (Refactor vs. Fix)
2022.01.23들어가며 온룸 프론트엔드 개발 작업을 진행하며 커밋을 남길 때마다 지속적으로 든 생각은 "이 커밋이 올바르게 분류되고 있는가?" 에 대한 의구심이었다. 정리되지 못한 채로 작업을 계속 진행했는데, 다음 의문에 대한 답을 명확히 결정하고 커밋들을 수정해야겠다. 1. 태그 feat : 은 HTML 요소 구현에 써도 되는가? 프론트엔드 작업이기 때문에 실제로 동작하는 기능은 없더라도, 단순히 화면에 컴포넌트들을 렌더링 하는 부분만 구현한 후 커밋을 남기고 싶을 때 항상 커밋 태그로 feat을 썼다. 그런데 이 컴포넌트들이 아직 별다른 '기능'을 하지는 않는데.. 지금 커밋을 해도 되는 걸까? 자바스크립트 코드도 추가해서 액션을 추가해야 올바른 '기능'이라고 할 수 있지 않을까? 하는 의구심이 나를 계속 괴롭혔..
백준 17298 오큰수 c++
백준 17298 오큰수 c++
2022.01.13[문제 링크] https://www.acmicpc.net/problem/17298 [입출력 예] 입력 출력 4 3 5 2 7 4 9 5 4 8 5 7 7 -1 -1 8 8 -1 [소스코드] #include #define MAX_N 1000000 #define MAX_A 1000001 int a[MAX_N]; int ans[MAX_N]; using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); // n값 입력 int n; cin>>n; // 배열 입력 for(int i=0; i>a[i]; } // 최대값 대입 stack s; s.push(MAX_A); for (int i=n-1; i>=0;i--){ while(a[i]>=s.top()){ ..
백준 6918 옥상 정원 꾸미기 c++
백준 6918 옥상 정원 꾸미기 c++
2022.01.13[문제 링크] https://www.acmicpc.net/problem/6918 [입출력 예] 입력 출력 6 10 3 7 4 12 2 5 [1차 시도] #include #define MAX_N 80000 #define MAX_h 1000000001 #define X first #define Y second int a[MAX_N]; using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int ans=0; // n값 입력 int n; cin>>n; // 배열 입력 for(int i=0; i>a[i]; } // 를 담는 스택 stack s; pair p ={n,MAX_h}; s.push(p); // 순회 for (int i=n-1;i>=0..
백준 1874 스택수열 c++
백준 1874 스택수열 c++
2022.01.08[문제 링크] https://www.acmicpc.net/problem/1874 [입출력 예] 입력 출력 8 4 3 6 8 7 5 2 1 + + + + - - + + - + + - - - - - [소스코드] #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); stack s; int n; int cur = 1; int target; string result; bool success=true; cin>>n; while(n--){ cin>>target; if(s.size()==0){ s.push(cur++); result+="+\n"; } if(s.size()!=0 && target>s.top()){ while(targe..
백준 2493 탑 c++
백준 2493 탑 c++
2022.01.08[문제 링크] https://www.acmicpc.net/problem/2493 [입출력 예] 입력 출력 5 6 9 5 7 4 0 0 2 2 4 [1차시도 - 시간초과 57%] #include #define MAX_N 500001 using namespace std; int a[MAX_N]; int ans[MAX_N]; int recent_max = -1; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n; cin>>n; for(int i=0; i>a[i]; if (recent_max>0 && a[i]>recent_max){ cout
백준 5397 키로거 c++
백준 5397 키로거 c++
2022.01.04[문제 링크] https://www.acmicpc.net/problem/5397 [입출력 예] 입력 출력 2 >n; while(n--){ string s; cin>>s; list L; auto cursor = L.end(); for (auto c:s){ if(c==''){ if (cursor!=L.end()){ cursor++; } } else if (c=='-'){ if (cursor!=L.begin()){ cursor--; cursor=L.erase(cursor); } } else { L.insert(cursor,c); } } for (auto c:L){ cout
백준 2003 수들의 합 2 (c++)
백준 2003 수들의 합 2 (c++)
2022.01.04[문제 링크] https://www.acmicpc.net/problem/2003 [입출력 예] 입력 출력 4 2 1 1 1 1 3 [소스코드] #include #define MAX 10000 using namespace std; long long num[MAX]; int sum(int l, int r){ int s=0; while(l>n>>m; for (int i=0; i>num[i]; } int l=0; int r=0; int cur_sum =0; int cnt=0; while(true){ cur_sum=sum(l,r); if (cur_sum==m){cnt++;} if ((r==n-1 && cur_sum
Redux 공부하기
Redux 공부하기
2022.01.01들어가며 Velopert의 모던 리액트를 읽으면서 알게 된 중요한 내용들을 정리해본다. 1월에 하기로 한 프로젝트에 리덕스를 도입할 것인지 말지를 결정하기 위해 빠르게 공부해보기로 했다. 6장 리덕스 리덕스의 흐름은 아래와 같이 진행된다. createStore에 reducer함수를 넣어서 store를 만드는 것으로 전역 상태를 관리한다. reducer함수는 state와 action을 입력받고, action의 타입에 따라 state를 불변성을 지키며 갱신한다. reducer를 위해 초기 State, action type(문자열), action 생성함수를 정해주어야 한다. action 생성함수는 dispatch를 깔끔하게 하기 위함이고.. (store.dispatch(액션생성함수)의 형식으로 쓴다) 기본적으..
[프로그래머스] 불량사용자 파이썬 풀이
[프로그래머스] 불량사용자 파이썬 풀이
2021.12.10[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/64064 [입출력 예] user_id banned_id result ["frodo", "fradi", "crodo", "abc123", "frodoc"] ["frd", "abc1**"] 2 ["frodo", "fradi", "crodo", "abc123", "frodoc"] ["rodo", "rodo", "**"] 2 ["frodo", "fradi", "crodo", "abc123", "frodoc"] ["frd", "rodo", "*****", "**"] 3 [최초 접근 방식] # 경우의 수 구하듯이 접근했음. # 이런 식으로 풀면 banned_id가 중복될 때 # 또는 교환이 가능할 때(예제3)..
[프로그래머스] 보석 쇼핑 파이썬 풀이
[프로그래머스] 보석 쇼핑 파이썬 풀이
2021.12.09[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/67258 [입출력 예] gems result ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] ["AA", "AB", "AC", "AA", "AC"] [1, 3] ["XYZ", "XYZ", "XYZ"] [1, 1] ["ZZZ", "YYY", "NNNN", "YYY", "BBB"] [1, 5] [1차시도 테스트케이스 4/4 제출 15.6] def solution(gems): answer=[] start,end=0,0 set_gem=set(gems) while end!=len(gems)-1: while len(set(g..
백준 3425 - 고스택 파이썬 풀이
백준 3425 - 고스택 파이썬 풀이
2021.12.08[문제 링크] https://www.acmicpc.net/problem/3425 [입출력 예] [입력] DUP MUL NUM 2 ADD END 3 1 10 50 NUM 1 NUM 1 ADD END 2 42 43 NUM 600000000 ADD END 3 0 600000000 1 QUIT[출력] 3 102 2502 ERROR ERROR 600000000 ERROR 600000001[소스코드] from sys import stdin def solution(queries, stack): #5. MAX값 정하기 MAXVAL = 10 ** 9 for query in queries: # 6. try..except로 처리. # except에는 오류를 구체화할 수 있지만 # 아무것도 안 줄 경우 모든 에러를 받아줌. ..
[프로그래머스] 셔틀버스
[프로그래머스] 셔틀버스
2021.12.08[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/17678?language=python3 [입출력 예] n t m timetable answer 1 1 5 ["08:00", "08:01", "08:02", "08:03"] "09:00" 2 10 2 ["09:10", "09:09", "08:00"] "09:09" 2 1 2 ["09:00", "09:00", "09:00", "09:00"] "08:59" 1 1 5 ["00:01", "00:01", "00:01", "00:01", "00:01"] "00:00" 1 1 1 ["23:59"] "09:00" 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "2..
[프로그래머스] 자물쇠와 열쇠 파이썬
[프로그래머스] 자물쇠와 열쇠 파이썬
2021.11.28[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/60059 [입출력 예] key lock result [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true [소스코드] def rotate(lock): rotated = [[ 0 for _ in range(len(lock))] for _ in range(len(lock))] for r in range(len(lock)): for c in range(len(lock)): rotated[len(lock)-1-c][r]=lock[r][c] return rotated def check(lock_length,key_length,loc..
[프로그래머스] 순위
[프로그래머스] 순위
2021.11.27[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/49191 [입출력 예] n results return 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 [소스코드] def solution(n, results): win,lose = 1, -1 #1 # 결과를 숫자로 추상화 graph = [[0 for _ in range(n)] for _ in range(n)] #2 for result in results: winner, loser = result graph[winner-1][loser-1]=1 graph[loser-1][winner-1]=-1 # A가 B에게 이겼으면 graph[A][B]=1로 기록 # 졌으면 -1로 ..