개발자 25

[CSS] CSS 변수와 SCSS 변수의 차이 (사용자 지정 속성)

CSS에서 사용자 지정 속성(CSS 변수)를 정의할 때는 전용 표기법이 있다.이 표기법은 SCSS와 CSS에서 사용하는 방법이 다르다. 1. 언제 사용하는가?복잡한 웹사이트에서 많은 값을 반복적으로 사용할 때,예를 들어 어떤 특정 색상을 반복적으로 사용할 때혹시 그 색상을 바꿔야하는 일이 생길 경우한 영역에 값을 저장해놓고 참조를 통해 값을 사용하는 것이 좋다. 2. CSS 변수:root { --main-bg-color: brown;}element { background-color: var(--main-bg-color);} root 위치에 선언할 경우 HTML 문서 어디에서나 사용자 지정 속성에 접근할 수 있다.이렇게 선언한 변수를 사용할 때는 var() 함수를 지정하고 매개변수로 사용자 지정 속성의..

[백준/python] 15810번 풍선 공장

1. 문제 이 문제는 풍선 m개를 만드는데 걸리는 최소 시간을 구하는 문제이다.스태프마다 만드는 속도가 다른 상황에서 짧은 시간 안에 최소 시간을 구해야 한다. 2. 풀이1. l, r을 양 끝 숫자 0과 max(time) * m으로 초기화한다.2. l보다 r이 크거나 같은 동안 반복문을 실행한다.3. 두 수의 중간값 mid에 대하여 스태프마다 해당 시간에 몇 개를 만들었는지 그 합을 구한다.4. 그 값이 m보다 크거나 같을 경우 답을 mid로 초기화하고 최솟값을 찾기 위해 r을 mid - 1로 바꾼다.5. 아닌 경우 l을 mid + 1로 바꾸어 계속 탐색한다.3. 코드import sysinput = sys.stdin.readlinen, m = map(int, input().split())time = li..

[백준/python] 16926번 배열 돌리기 1

1. 문제이 문제는 배열을 반시계 방향으로 R번 회전시킨 결과를 구해 출력하는 문제이다. 2. 풀이귀찮고 오래 걸릴 것 같은 구현 문제였다.풀기 싫어서 이틀은 미루었다..ㅠㅠ 배열에서 어느 위치에 있느냐에 따라 돌렸을 때 자리까지 돌아오는 횟수가 달라진다.최대한 시간을 줄이기 위해 꼭 필요한 만큼만 돌려야겠다는 생각을 했다.즉, 다시 자기 자리에 돌아와 한 바퀴 회전하는 경우를 빼야 한다는 것.전체 길이로 돌리는 횟수를 나눈 나머지 만큼만 돌리면 된다. 2차원 배열로는 어려워서 1차원 배열로 바꾸기로 정했다.좀 지저분하지만 각각의 그룹을 모두 분리해냈고,그 뒤에 1차원 배열 내에서 돌리기를 쉽게 수행했다. 그 뒤 다시 2차원 배열로 바꾸어 출력해주었다. 3. 코드n, m, r = map(int, inpu..

[Next.js] Next.js 설치 오류 code EEXIST, npm cache verify으로 해결

1. 오류상황 프로젝트에서 Next.js를 쓰기로 하여 급하게 배우려던 중,갑자기 EEXIST 오류를 맞닥뜨렸다. 하라는 대로 npx create-next-app tutorial를 입력했는데 왜 안되는 걸까...npm ERR! code EEXISTnpm ERR! syscall renamenpm ERR! path /Users/seon/.npm/_cacache/tmp/3ee0a393npm ERR! dest /Users/seon/.npm/_cacache/content-v2/sha512/06/d8/20f3d7409ea0f8bd5ed1de19703b182aa1b5102a0c77326ad0462d3261bb3f3f4ca6f17a33200964a958a53ea1d0c17b387bd4dfeb7aeb0a0979f0170..

Programming/React 2024.05.14

[백준/python] 14391번 종이조각

1. 문제 이 문제는 직사각형 종이를 한 변이 1인 직사각형 모양의 조각으로 잘라서조각 안의 수를 왼->오, 위->아래로 붙인 수의 합을 최대로 만드는 프로그램을 짜는 문제이다.특이점은 종이의 크기가 최대 4*4로 작다는 점이다.2. 풀이이 문제는 다양한 시도를 했으나 그만큼 실패를 많이 경험했다.처음에는 단순히 생각해서 그냥 가로로 쭉 자른 종이들의 합, 세로로 쭉 자른 종이들의 합,이 두 값을 비교해서 큰 값으로 하면 되잖아? 라고 생각했다.왜냐면 종이를 쭉 이어서 자르지 않고 막 조각내면 자릿수가 작아지니까.근데 이건 잘못된 생각이었다.문제에서 나온 예시와 달리 '0'이 들어가는 경우에 이상한 상황이 생긴다. 예를 들어서, 아래와 같은 종이조각 말이다.0023001299990011 1. 가로로 쭉 ..

[알고리즘] 비트마스킹

백준 14391 종이조각 문제를 풀면서 메모리 초과가 계속하여 떴다.아무리 해도 해결이 되지 않아 검색해보니 비트마스킹이라는 새로운 방법을 쓰는 사람이 많았다.처음 듣는 방법이지만 메모리를 아낄 수 있는 방법이라 종종 쓸 일이 있을 것 같다. 비트마스킹특정 비트를 켜고 끄거나 반전시키기 위해비트 연산에 사용되는 데이터위키 백과에 따르면 비트마스크는 비트 연산에 사용되는 데이터로,다중 비트들을 싱글 비트 연산 작업에서 켜고 끄거나 상호 반전시킬 수 있다. 일단 비트 연산들을 알아보겠다.비트 연산자설명&AND (둘 다 1이면 1 반환)|OR (둘 중 하나라도 1이면 1 반환)^XOR (둘이 서로 다르면 1 반환)~NOT ( 1-> 0, 0->1 반전)left shift (지정한 수만큼 왼쪽으로 비트 이동)>..

[SSAFY 12기] 싸피 12기 비전공자 지원서 접수, SW적성진단 공부법

- 2024년 4월 22일(월) ~ 5월 7일(화) 17시 : 지원서 접수- 2024년 5월 8일(수) ~ 5월 18일(토) : 에세이 제출- 2024년 5월 11일(토) 10시, 13시, 16시 SW적성진단(비전공자)- 2024년 5월 19일(일) 11시, 15시 코딩테스트(전공자)  지원서 접수작년부터 꿈꿔왔던 SSAFY 12기에 지원했습니다.변함 없이 늘 가고 싶던 곳이라 접수 오픈일 오전에 바로 접수해버리기는 했지만그래도 정보를 더 얻어보고자 오프라인 모집설명회도 다녀오고, 또 온라인 설명회도 다시 보고 그랬네요.지원서 접수 기간은 꽤 깁니다.그 안에 홍보도 많이 하는 것 같아요! 지원서 접수 화면에 들어가면 최종학력을 등록하게 됩니다.이때, 학점평균도 들어가야 하니 미리 알고 있으면 접수가 좀 ..

이직 기록 2024.05.11

[백준/python] 1141번 접두사

1. 문제 이 문제는 접두사X집합의 최대 크기를 구하는 문제이다.주어진 배열에서 어떤 단어가 다른 단어의 접두어가 되지 않는 부분집합을 만들어야 한다.단어의 개수는 최대 50이어서 숫자가 크지 않다. 2. 풀이접두어가 되려면 자신보다 길거나 같은 길이의 문자여야 하므로길이를 기준으로 짧은 길이부터 긴 길이 순으로 정렬을 했다.이후 이중 반복문을 사용하여 가장 짧은 단어부터 시작해 자기 자신 다음 단어부터 가장 긴 단어까지 확인한다.만약 단어 j를 i 단어의 길이 만큼 잘라서 i와 자른 j가 같다면 단어 i는 부분집합에 들어갈 수 없다. 직접 배열 자체에서 그 단어를 삭제하는 것도 방법이지만,결국 출력해야 하는 것은 크기 값 뿐이므로 ans 변수를 새로 만들어 겹치는 단어를 빼주었다.처음에는 n 자체를 변..

[백준/python] 9465번 스티커

1. 문제 이 문제는 스티커를 뗄 때 얻을 수 있는 최대 점수를 구하는 문제이다.그러나 스티커를 떼면 맞닿는 스티커들은 사용할 수 없어진다. 2. 풀이이 문제는 코테 스터디에서 시간을 정해두고 풀었다.20분 정도 소요되어서 풀었다.이전에 풀어봤던 dp 문제들 덕에 금방 풀이 방법을 생각해냈다. 스티커 배열을 입력받고 그것과 같은 형태로 dp 테이블을 초기화한다.자기 자신을 뜯을 경우에는 바로 왼쪽 칸은 뜯을 수 없고, 대각선에 있는 걸 뜯을 수 있다.그래서 자신 + 왼쪽 대각선을 뜯은 값과 왼쪽 칸을 뜯은 값 중 최댓값으로 dp 테이블을 갱신한다.마지막에는 모든 값 중 최댓값을 출력한다.3. 코드import sysinput = sys.stdin.readlinet = int(input()) #테스트케이스f..

[백준/python] 1106번 호텔

1. 문제 이 문제는 호텔의 홍보 비용에 따른 고객 수 증가 정보를 가지고호텔의 고객을 c명 이상 늘이기 위해 투자해야 하는 돈의 최솟값을 구하는 문제이다. 2. 풀이[접근 1 - dfs] 시간초과처음에는 dfs를 활용하여 재귀 형태로 모든 경우의 수를 확인하도록 했다.모든 방법을 확인하다가 고객 수가 c 이상이 될 경우 최솟값을 갱신하고 return하는 형태이다.답을 찾는 데는 무리가 없었으나 시간초과가 떠버렸다.이에 시간을 줄일 수 있는 다른 방법을 고민했다. [접근 2- dp]목표 고객 증가 수인 c에다가 한 번의 투자로 늘어날 수 있는 최댓값인 100을 더해서 dp테이블을 만들었다.혹시 c보다 c+1이 더 비용이 적게 들 수도 있기 때문이다.dp 테이블은 모두 큰 수로 초기화해두고 반복문을 돌렸다..