구현 기판 설계로 양면 실장은 추천하지 않는다 이번에는 기판 설계에 대해 써 보겠습니다. 기판 설계를 한 적이 있는 사람이라면 알겠다고 생각합니다만, 부품은 실지만 배선할 수 없는 케이스는 꽤 있습니다. 배선폭을 작게 하면 들어가면 아직 좋지만, 그래도 들어가지 않는 케이스도 많이 있습니다. 프리메이드 a용 WiFi 보드는 몇 시간 안에 단번에 만들었기 때문에 부품 배치에서 양면 실장으로 했습니다. 설계의 여유를 보고 뒷면으로 하면, 실... SMT프리메이드 AI디자인PCB구현 AndroidX 마이그레이션 gradle 파일 편 AndroidX로 마이그레이션 할 때 조금 빠져서 메모하십시오. 마이그레이션하고 싶지만 영향이 무섭기 때문에 조금씩 마이그레이션하고 싶다거나 자신의 담당 범위만 마이그레이션하고 싶은 사람을 위한 방법 AndroidX로 마이그레이션하기 때문에 build.gradle의 dependencies에 대한 설명을 변경할 것입니다. ↓에 공식 사이트에 매핑표가 있었으므로 이것을 보면서 이행하면 간단했다.... AndroidStudiogradleAndroidX구현안드로이드 SWEA1224 계산기3 앞서 풀었던 계산기2 문제와 다르지 않다. 괄호 연산만 추가적으로 생각해주면 된다.... 구현SWEA 알고리즘스택SWEA 알고리즘 SWEA3499 퍼펙트 셔플 큐SWEA 알고리즘구현SWEA 알고리즘 [백준] 16236_아기상어 python N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게 도... bojpythonBFS구현백준BFS [프로그래머스] 124 나라의 숫자 JAVA 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫... 3의 배수알고리즘구현프로그래머스124 나라의 숫자124 나라의 숫자 [백준 20056] 마법사 상어와 파이어스톰 (JAVA) 미생물 격리 문제 때와 비슷하게 객체 리스트를 관리하는 ArrayList와 객체들이 이동 후 map에 배치하기 위해 2차원 배열 map을 설정하였다. 파이어볼 객체가 있다고 하면 2가지를 만들어서 파이어볼 객체들 list에 저장 -> list의 파이어볼들 이동(r, c 갱신) -> 이동한 파이어볼들 map에 배치 -> map에 배치된 파이어볼들 상태 보고 한 공간에 2개 이상의 파이어볼 있으... 알고리즘구현시뮬레이션구현 [Python] 백준 11866번: 요세푸스 문제 0 deque.rotate 사용 deque의 rotate 함수를 이용하면 n만큼 왼쪽(-n) 오른쪽(+n)으로 리스트를 이동시킬 수 있다. 이를 이용해서 k번째의 숫자를 가장 앞으로 이동시켜서 왼쪽부터 차례로 빼도록 구현하였다 deque 사용하지 않고 deque로 구현하고 끝내기에는 뭔가 공부한 것 같지가 않아서 쓰지 않고 구현해보았다. k번째의 숫자를 하나씩 빼면 인덱스도 하나씩 줄어 들기 때... 코딩테스트 연습구현파이썬DequeDeque [백준] 2578_빙고 python 빙고 게임은 다음과 같은 방식으로 이루어진다. 먼저 아래와 같이 25개의 칸으로 이루어진 빙고판에 1부터 25까지 자연수를 한 칸에 하나씩 쓴다 다음은 사회자가 부르는 수를 차례로 지워나간다. 예를 들어 5, 10, 7이 불렸다면 이 세 수를 지운 뒤 빙고판의 모습은 다음과 같다. 차례로 수를 지워가다가 같은 가로줄, 세로줄 또는 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선... 백준알고리즘pythonboj구현파이썬boj [BOJ] 2002 추월 (파이썬) 대한민국을 비롯한 대부분의 나라에서는 터널 내에서의 차선 변경을 법률로 금하고 있다. 조금만 관찰력이 있는 학생이라면 터널 내부에서는 차선이 파선이 아닌 실선으로 되어 있다는 것을 알고 있을 것이다. 이는 차선을 변경할 수 없음을 말하는 것이고, 따라서 터널 내부에서의 추월은 불가능하다. 소문난 명콤비 경찰 대근이와 영식이가 추월하는 차량을 잡기 위해 한 터널에 투입되었다. 대근이는 터널의 ... python자료 구조boj구현문자열boj [BOJ] 1158번: 요세푸스 문제 (Java) 원형모양으로 앉아 있다는 것때문에 처음에는 LinkedList를 생각했으나, 이번문제는 Queue로 간단하게 해결할 수 있는 문제! 우선 큐에 1~n까지의 값을 넣어준다. 그 후, 큐가 빌 때까지(사람이 남지 않을 때 까지) while문을 돌리며 cnt%3 == 0 이면 poll로 큐에서 값을 빼고 바로 josephus배열에 넣는다. 그렇지 않다면, poll한 값을 다시 offer하여 원형 ... 구현구현 [BOJ] 1918번: 후위 표기식 (Java) 피연산자: 바로 출력 연산자: 스택 활용 연산자를 만나면 우선 스택에 넣어주는 것을 기본으로 한다. 이때, stack.peek()이 자신보다 높거나 같은 우선순위의 연산자라면 이를 모두 pop(출력)한 후 자신을 push한다. 이는 자신보다 높은 우선순위의 연산자는 말그대로 먼저 연산을 해줘야 하기 때문에 먼저 출력한다는 개념이다. 괄호 연산자 "(": 스택에 넣는다. 연산자 우선순위에서는 ... 구현구현 [BOJ] 1874번: 스택수열 (Java) 입력: BufferedReader 출력: StringBuilder 기본적으로, 현재 비교하고 있는 배열 값(arr[i])과 현재 stack에 맨 위에 값을 비교. If(arr[i] > stack.peek())이라면, 아직 스택에 해당 값(arr[i])가 안들어가 있는 경우이므로 stack.peek() == arr[i]까지 스택에 cnt를 push If(arr[i] < stack.peek())... 구현구현 [백준] 14500_테트로미노 python 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테... 백준알고리즘pythonboj구현파이썬boj [백준] 2669_직사각형 네개의 합집합의 면적 python 평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으며, 변이나 꼭짓점이 겹칠 수도 있다. 이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오. 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의... 백준알고리즘algorithmpythonboj구현파이썬algorithm [백준] 2477_참외밭 python 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다. 1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계 길이를 모두 측정하였다. 이 그림의 왼쪽위 꼭짓점에서 출... 백준알고리즘pythonboj구현파이썬boj [BOJ] 2531번: 회전 초밥 (Java) 길이가 k인 슬라이딩 윈도우로 구현하였다. 이 때, 매번 i번째에 대해서 k개를 탐색하는 것이 아니라 ( → 시간초과! 초기의 window를 셋팅하고 start와 end 인덱스에 대해서만 처리하였다. 슬라이딩 할 때, eat[start] 값을 -1하고, 그 값이 0이라면 cnt를 하나 감소시킨다. → 윈도우 안에 해당 종류의 초밥을 먹는 일이 없으므로 eat[end] 값을 +1하고, 그 값이... 구현구현 [BOJ] 1253번: 좋다 (Java) 배열의 값들을 하나씩 돌며, 투 포인터를 사용하여 해당 수가 좋은지 판별하였다. 문제에 나와있는 예시가 너무 자명하기 때문에 아래 예시로 생각하고 문제를 풀었다. 기본적으로 정렬을 진행해야 한다. 그렇지 않으면, 투포인터의 움직임에 따른 로직을 작성할 수 없다! left, right 값을 설정해주는데, 정렬을 해주었다고 right값을 i-1로 해서는 안된다! -> 음수가 있어서 나보다 큰 수... 구현구현 [BOJ] 18222번 투에-모스 문자열 (Java) 접근 설명 1과 0을 1과 -1이라고 생각하자! ( 부호의 차이로 생각하자! 2의 제곱 수(2,4,8,16,...)만큼 앞뒤로 대칭되고 있는 문자열! 즉, N보다 작은 2의 제곱수를 뺀 인덱스 값(N - (2*?)) 을 알면 N의 값을 알게 됨 위의 예시로 설명하자면, 27번째 값은 11번째 값과 같음(부호만 반대) 11번째 값은 3번째 값과 같음 ... 이 반복됨 => 재귀! 즉, N보다 ... 구현알고리즘구현
기판 설계로 양면 실장은 추천하지 않는다 이번에는 기판 설계에 대해 써 보겠습니다. 기판 설계를 한 적이 있는 사람이라면 알겠다고 생각합니다만, 부품은 실지만 배선할 수 없는 케이스는 꽤 있습니다. 배선폭을 작게 하면 들어가면 아직 좋지만, 그래도 들어가지 않는 케이스도 많이 있습니다. 프리메이드 a용 WiFi 보드는 몇 시간 안에 단번에 만들었기 때문에 부품 배치에서 양면 실장으로 했습니다. 설계의 여유를 보고 뒷면으로 하면, 실... SMT프리메이드 AI디자인PCB구현 AndroidX 마이그레이션 gradle 파일 편 AndroidX로 마이그레이션 할 때 조금 빠져서 메모하십시오. 마이그레이션하고 싶지만 영향이 무섭기 때문에 조금씩 마이그레이션하고 싶다거나 자신의 담당 범위만 마이그레이션하고 싶은 사람을 위한 방법 AndroidX로 마이그레이션하기 때문에 build.gradle의 dependencies에 대한 설명을 변경할 것입니다. ↓에 공식 사이트에 매핑표가 있었으므로 이것을 보면서 이행하면 간단했다.... AndroidStudiogradleAndroidX구현안드로이드 SWEA1224 계산기3 앞서 풀었던 계산기2 문제와 다르지 않다. 괄호 연산만 추가적으로 생각해주면 된다.... 구현SWEA 알고리즘스택SWEA 알고리즘 SWEA3499 퍼펙트 셔플 큐SWEA 알고리즘구현SWEA 알고리즘 [백준] 16236_아기상어 python N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게 도... bojpythonBFS구현백준BFS [프로그래머스] 124 나라의 숫자 JAVA 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫... 3의 배수알고리즘구현프로그래머스124 나라의 숫자124 나라의 숫자 [백준 20056] 마법사 상어와 파이어스톰 (JAVA) 미생물 격리 문제 때와 비슷하게 객체 리스트를 관리하는 ArrayList와 객체들이 이동 후 map에 배치하기 위해 2차원 배열 map을 설정하였다. 파이어볼 객체가 있다고 하면 2가지를 만들어서 파이어볼 객체들 list에 저장 -> list의 파이어볼들 이동(r, c 갱신) -> 이동한 파이어볼들 map에 배치 -> map에 배치된 파이어볼들 상태 보고 한 공간에 2개 이상의 파이어볼 있으... 알고리즘구현시뮬레이션구현 [Python] 백준 11866번: 요세푸스 문제 0 deque.rotate 사용 deque의 rotate 함수를 이용하면 n만큼 왼쪽(-n) 오른쪽(+n)으로 리스트를 이동시킬 수 있다. 이를 이용해서 k번째의 숫자를 가장 앞으로 이동시켜서 왼쪽부터 차례로 빼도록 구현하였다 deque 사용하지 않고 deque로 구현하고 끝내기에는 뭔가 공부한 것 같지가 않아서 쓰지 않고 구현해보았다. k번째의 숫자를 하나씩 빼면 인덱스도 하나씩 줄어 들기 때... 코딩테스트 연습구현파이썬DequeDeque [백준] 2578_빙고 python 빙고 게임은 다음과 같은 방식으로 이루어진다. 먼저 아래와 같이 25개의 칸으로 이루어진 빙고판에 1부터 25까지 자연수를 한 칸에 하나씩 쓴다 다음은 사회자가 부르는 수를 차례로 지워나간다. 예를 들어 5, 10, 7이 불렸다면 이 세 수를 지운 뒤 빙고판의 모습은 다음과 같다. 차례로 수를 지워가다가 같은 가로줄, 세로줄 또는 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선... 백준알고리즘pythonboj구현파이썬boj [BOJ] 2002 추월 (파이썬) 대한민국을 비롯한 대부분의 나라에서는 터널 내에서의 차선 변경을 법률로 금하고 있다. 조금만 관찰력이 있는 학생이라면 터널 내부에서는 차선이 파선이 아닌 실선으로 되어 있다는 것을 알고 있을 것이다. 이는 차선을 변경할 수 없음을 말하는 것이고, 따라서 터널 내부에서의 추월은 불가능하다. 소문난 명콤비 경찰 대근이와 영식이가 추월하는 차량을 잡기 위해 한 터널에 투입되었다. 대근이는 터널의 ... python자료 구조boj구현문자열boj [BOJ] 1158번: 요세푸스 문제 (Java) 원형모양으로 앉아 있다는 것때문에 처음에는 LinkedList를 생각했으나, 이번문제는 Queue로 간단하게 해결할 수 있는 문제! 우선 큐에 1~n까지의 값을 넣어준다. 그 후, 큐가 빌 때까지(사람이 남지 않을 때 까지) while문을 돌리며 cnt%3 == 0 이면 poll로 큐에서 값을 빼고 바로 josephus배열에 넣는다. 그렇지 않다면, poll한 값을 다시 offer하여 원형 ... 구현구현 [BOJ] 1918번: 후위 표기식 (Java) 피연산자: 바로 출력 연산자: 스택 활용 연산자를 만나면 우선 스택에 넣어주는 것을 기본으로 한다. 이때, stack.peek()이 자신보다 높거나 같은 우선순위의 연산자라면 이를 모두 pop(출력)한 후 자신을 push한다. 이는 자신보다 높은 우선순위의 연산자는 말그대로 먼저 연산을 해줘야 하기 때문에 먼저 출력한다는 개념이다. 괄호 연산자 "(": 스택에 넣는다. 연산자 우선순위에서는 ... 구현구현 [BOJ] 1874번: 스택수열 (Java) 입력: BufferedReader 출력: StringBuilder 기본적으로, 현재 비교하고 있는 배열 값(arr[i])과 현재 stack에 맨 위에 값을 비교. If(arr[i] > stack.peek())이라면, 아직 스택에 해당 값(arr[i])가 안들어가 있는 경우이므로 stack.peek() == arr[i]까지 스택에 cnt를 push If(arr[i] < stack.peek())... 구현구현 [백준] 14500_테트로미노 python 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테... 백준알고리즘pythonboj구현파이썬boj [백준] 2669_직사각형 네개의 합집합의 면적 python 평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으며, 변이나 꼭짓점이 겹칠 수도 있다. 이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오. 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의... 백준알고리즘algorithmpythonboj구현파이썬algorithm [백준] 2477_참외밭 python 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다. 1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계 길이를 모두 측정하였다. 이 그림의 왼쪽위 꼭짓점에서 출... 백준알고리즘pythonboj구현파이썬boj [BOJ] 2531번: 회전 초밥 (Java) 길이가 k인 슬라이딩 윈도우로 구현하였다. 이 때, 매번 i번째에 대해서 k개를 탐색하는 것이 아니라 ( → 시간초과! 초기의 window를 셋팅하고 start와 end 인덱스에 대해서만 처리하였다. 슬라이딩 할 때, eat[start] 값을 -1하고, 그 값이 0이라면 cnt를 하나 감소시킨다. → 윈도우 안에 해당 종류의 초밥을 먹는 일이 없으므로 eat[end] 값을 +1하고, 그 값이... 구현구현 [BOJ] 1253번: 좋다 (Java) 배열의 값들을 하나씩 돌며, 투 포인터를 사용하여 해당 수가 좋은지 판별하였다. 문제에 나와있는 예시가 너무 자명하기 때문에 아래 예시로 생각하고 문제를 풀었다. 기본적으로 정렬을 진행해야 한다. 그렇지 않으면, 투포인터의 움직임에 따른 로직을 작성할 수 없다! left, right 값을 설정해주는데, 정렬을 해주었다고 right값을 i-1로 해서는 안된다! -> 음수가 있어서 나보다 큰 수... 구현구현 [BOJ] 18222번 투에-모스 문자열 (Java) 접근 설명 1과 0을 1과 -1이라고 생각하자! ( 부호의 차이로 생각하자! 2의 제곱 수(2,4,8,16,...)만큼 앞뒤로 대칭되고 있는 문자열! 즉, N보다 작은 2의 제곱수를 뺀 인덱스 값(N - (2*?)) 을 알면 N의 값을 알게 됨 위의 예시로 설명하자면, 27번째 값은 11번째 값과 같음(부호만 반대) 11번째 값은 3번째 값과 같음 ... 이 반복됨 => 재귀! 즉, N보다 ... 구현알고리즘구현