이카's
반응형
프로그래머스 - 대충만든자판 for Java
프로그래머스/Lv.1 2024. 8. 19. 16:50

프로그래머스 LV.1 대충 만든 자판문제 설명문제 설명휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다.예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다.같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 키를 눌렀을 때 입력되는 문자들도 무작위로 배열되어 있습니다. 또, 같은 문자가 자판 전체에 여러 번 할당된 경우도 있고, 키 하나에 같은..

프로그래머스 - 덧칠하기 for Java
프로그래머스/Lv.1 2024. 8. 13. 15:57

프로그래머스 LV.1 덧칠하기문제 설명문제 설명어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다.넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다.벽에 페인트를 칠하는 롤러의 길이는 m미터이고, 롤러로 벽에 페인트를 한 번 칠하는 규칙..

프로그래머스 - 바탕화면 정리 for Java
프로그래머스/Lv.1 2024. 8. 13. 15:28

프로그래머스 LV.1 바탕화면 정리문제 설명문제 설명코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다.컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ..

프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 for MySQL
프로그래머스/Lv.1 2024. 8. 9. 09:26

프로그래머스 LV.1 조건에 부합하는 중고거래 댓글 조회하기문제 설명문제 설명다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_REPLY 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.Column name Type NullableBOARD_ID VARCHAR(5) FALSEWRITER_ID VARCHAR(50) FALSETITLE V..

프로그래머스 - 달리기 경주 for Java
프로그래머스/Lv.1 2024. 8. 8. 12:29

프로그래머스 LV.1 추억 점수문제 설명문제 설명사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 ..

프로그래머스 - 달리기 경주 for Java
프로그래머스/Lv.1 2024. 8. 8. 10:22

프로그래머스 LV.1 달리기 경주문제 설명문제 설명얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution..

article thumbnail
알고리즘 유형 별 정리
알고리즘 문제풀이 2023. 5. 24. 13:23

알고리즘 풀이 모음 알고리즘을 한번으로 공부하는 것은 어렵다. 마치 수학문제같다..! 한번으로 땡!이 아닌 여러번 풀어보고, 필요한 로직을 기억하고, 유형별로 풀어보는게 좋은 방법이라고 생각한다! 알고리즘을 유형별로 정리해보고, 필요한 로직을 기록하기 위한 포스팅을 시작한다! BOJ 유형별로 가장 많은 문제를 보유한 플렛폼 입출력 I/O가 조금 불편하긴 하지만, 문제 유형이 많아서 좋고, 다양한 것을 공부 할 수 있어서 메리트가 있다. Programmers 일단 문제가 길다. (== 이해하는데 어렵다. 특히 카카오 문제) 하지만 사고력을 키울 수 있는 문제가 많다. 또한 최근 문제가 많아져서 풀만한 것 같다. 또한, I/O에 대한 부분을 전혀 신경을 쓸 필요가 없다.

article thumbnail
알고리즘을 잘 풀기 위한 팁 - 구현편(feat. 유튜버 큰돌님)
알고리즘 문제풀이 2023. 5. 23. 21:31

알고리즘 어떻게 풀까? 구현 디버깅 (굳이 메모장 필요 X) 문제 도식화 쉬움2 보통1 꾸준히 타자속도 자주 나오는 로직은 외우자 실력이 조금 있다? ▶️▶️▶️ BOJ 실버 2문제, 골드 1문제 그렇지 않다? ▶️▶️▶️ BOJ 브론즈 2문제, 실버 1문제 찾는 방법 solved.ac 들어가서 검색 ▶️▶️▶️ ex) #implementation *s (구현 실버 문제) 예시 백준 14502 - 연구소 벽 3개 새운다. 1-1. 모든 경우의 수 체크 - 완전 탐색 바이러스 퍼트린다 안전 영역 count하는 것 필요 DFS 구현 처음부터 IDE에서 풀되, 자동완성 쓰지 말고, 직접 치는 연습을 해야한다. 구현문제의 많은 경우는 x1, y1, x2, y2로 네방향으로 벽을 치면서 구현하는 문제가 많다. 꼭..

[Node.js] 백준 #10828 스택 (실패 : 시간초과)
BOJ 2021. 7. 20. 23:51

let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let stackCount = Number(input[0]); function solution() { let stack = []; let result = 0; function PUSH (num) { return stack.concat(num); }; function TOP() { if (stack.length === 0) { return -1; } else { result = stack.slice(-1, ); } return result; }; function SIZE () { return stack.length; }; function EMPTY..

[Algorithm]프로그래머스 체육복 #python #그리디
알고리즘 문제풀이 2021. 5. 17. 22:53

처음 문제 풀때는 어떻게 풀어야 할지 막막했다. 어떻게 순서를 정하고 풀어야 하는데 어디서 부터 손 댈지가 막막했다. 그래도 순서 적어가면서 풀어봤는데, 나름 풀만 했다! 또한 새로운 걸 배워서 적어 본다. lost, reserve = list(set(lost) - set(reserve)), list(set(reserve) - set(lost)) 차집합 개념이라고 생각하면 된다. a - b라고 생각 했을때, a에서 b를 빼고 나머지 a가 담긴다. 즉 앞 set() 기준이라는 소리! 이 개념만 알면 코드 몇줄은 쉽게 줄여진다! 또한, list.remove(변수) 를 쓰니까 쉬웠다... list에 담겨져 있는 것 하나를 어떻게 지울까 하다가 remove를 쓰면 된다는 말에한번 써봤는데, 정말 쉽게 풀었다....

[Algorithm] 자릿수의 합 #python
알고리즘 문제풀이 2021. 5. 11. 22:09

문제 N개의 자연수가 입력되면 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수 출력 자릿수의 합 구하는 함수 만들기 코드 구현 생각 처음에는 잘 이해 안됐지만 쉽게 생각하니 쉬웠다. 111111 이 주어진다면 1을 6번 더하면 된다는 말 즉 return 값은 6 999 라면 각각 자리의 숫자를 합하는 것 PYTHON # 문자열 방법 def solution(x): total = [] sum = 0 for i in x: for j in str(i): sum += int(j) total.append(sum) sum = 0 max_num = 0 for i in total: if i > max_num: max_num = i answer = x[total.index(i)] return answer 이 방법이..

article thumbnail
자료구조 정리 #1 배열(Array), 리스트(LinkedList), 큐(Queue), 스택(Stack)
SW/자료구조 2020. 11. 12. 02:11

- 자료구조의 분류 선형구조 1. 배열 (Array) (선형 리스트) 배열의 특징은 논리적 순서와 물리적 순서가 일치한다. 즉, index값을 통해 원소 접근이 용이하며, 구현이 쉽다. 하지만 단점으로 삽입, 삭제 등에 대한 연산에 필요한 Cost가 높다. 삭제를 하는 경우 순서를 맞추기 위해 뒤의 원소들을 앞으로 Shift 연산을 해줘야 한다. 삭제 1 2 3 4 5 1 2 삭제 4 5 1 2 4 5 1 2 4 5 2. 연결 리스트(LinkedList) 배열의 삽입/삭제의 단점을 극복하고자 만든 개념이 리스트이다. 배열은 논리적, 물리적 저장이 순서대로 되어 있다. 하지만 리스트는 논리적으로는 순서대로 되어 있으나 물리적으로는 순서대로 되어있지 않다. 대신 각 원소가 index위치에 ..

반응형