일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 파일 시스템
- C
- 두근두근 자료구조
- 재귀
- LoB
- level13
- ftz
- 정렬 알고리즘
- ftz level13
- PHP
- War Game
- 스택
- SWiFT
- 백준
- 미로 탐색 알고리즘
- pwnable.kr
- windosw 문자열
- Java
- 암호수학
- 파이썬
- HTML
- c언어
- 큐
- System
- Stack
- 시간복잡도
- OSI
- 자료구조
- web
- windosws wbcs
- Today
- Total
목록Programming (130)
나의 기록, 현진록
코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 오랜만에 해서 감이 많이 떨어진 것 같다... 처음에 성공했을 때는 코드가 가독도 힘들도 지저분한 느낌이 들었다. 다른 사람들의 풀이를 보고 딕셔너리를 충분히 이용하여 코드 수를 줄이고 가독성을 늘릴 수 있었다. import Foundation func solution(_ id_list:[String], _ report:[String], _ k:Int) -> [Int] { var reportedNameCount = [String : Int]() // id..
코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제풀이 정신차리고 문제만 제대로 보고 그대로 코딩하면 된다. 문제 보고 그대로 코딩해라..... 출력 결과는 제대로 나오나 제출 시 통과하지 못하였는데 문제가 되는 부분은 다음과 같다. return "("+recursion(v)+")"+u.joined() 위와 같이 해야 하는데 return "("+u.joined()+")"+recursion(v) 이처럼 하였다. 출력 결과는 문제 없는 것 같은데 결과적으로 문제를 제대로 보고 그대로 코딩하면 된다... 만약 문제..
코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제풀이 스택을 이용하면 O(n)으로 해결 할 수 있다. 정확성과 효율성이 나뉘는 문제인데 정확성은 해결됐지만 효율성은 여러 시도가 있었다. 문자열을 배열 형태로 바꿔주는 방식도 map을 이용하면 시간초과가 난다. Array(s)를 이용하니 효율성도 해결되었다. 코드 import Foundation func solution(_ s:String) -> Int{ let sArr = Array(s) var stack = [Character]() for i..
코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 문제풀이 행렬 문제로 2차원 배열의 인덱스를 잘 고려하며 해결해야한다. 딱히 문제 풀이라고 할 것이 없고, 대신 고려할 점이 몇 가지 있다. 내가 문제를 풀면서 문제를 해결한 방법이다. 1. row [Int] { var map = Array(repeating: Array(repeating: 0, count: columns+1), count: rows+1) var result = [Int]() for i in 1...rows{ for j in 1..
코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제풀이 빗선을 지나는 사각형의 갯수를 구하는 공식을 사용하는 문제다. 빗선을 지나는 사각형의 갯수 = 가로 + 세로 - 최대공약수(가로, 세로) 정답은 (가로 * 세로) - (가로 + 세로 - 최대공약수)로 구할 수 있다. 코드 import Foundation func gcd(up: Int, down: Int) -> Int{ var up = up var down = down while down != 0{ let r = up % dow..
코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제풀이 command는 Enter, Leave, Change 세 가지를 의미한다. 1. command와 Id를 sequence 배열에 저장하며 동시에 Id와 nickName을 딕셔너리로 저장 2. 1번 과정이 끝나면 sequence에 command와 Id에 해당하는 딕셔너리 값을 조합하여 배열에 저장한다. 코드 import Foundation func solution(_ record:[String]) -> [String] { var sequence = [[St..

코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 문제풀이 이진트리와 같이 배열로 주어진 모든 수를 완전 탐색할 수 있도록 하였다. 텍스트로 표현하기에 가시성이 떨어지지만 다음과 같다. 4 1 2 1 -1 -2 1 -1 -1 2 1 -1 -2 1 -1 같은 논리를 가진 코드인데 채점 시 한 개의 케이스에 대하여 시간초과였는데 코드를 수정하니 통과되었다. 블로그 포스팅할 때 실행결과 캡처를 위해 다시 채점해보니 통과되었다. 뭐지 코드 시간초과 코드 import Foundation func ..
코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 풀이 swift를 공부하면서 느낀 점은 문자열 처리가 힘들다. String을 배열로 처리하여 생각하자. 1. 배열(문자열)의 크기가 N일 때 1부터 N까지의 글자수로 압축하는 모든 경우를 구해야한다. 2. 현재 문자열과 다음 문자열이 같으면 압축할 수 있는 것이다. 다음 과정을 반복한다. 3. 압축이 가능한 경우 "\(압축한 수)\(압축한 문자열)"을 새로운 문자열에 추가한다. 4. 압축하지 못 했을 경우 "\(압축 못한 문자열)" 그대로 추가하면 ..
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제풀이 큐 첫번째 작업보다 우선순위가 더 높은 작업이 있다 ? 1번부터, 없으면 2번부터 1. 큐에 우선순위가 가장 높은 작업을 맨 앞으로 옮기기 이 때 location(인덱스)도 같이 움직여줘야함(값에 의존 X 위치에 의존 O) 2. 위 작업이 끝나면 맨 앞에 있는 작업을 출력(큐.removeFirst), 인쇄 순서를 나타내는 count += 1 3. locat..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제풀이 1. 큐의 first의 요소가 100이 될 때까지 증가 2. 큐의 first가 100일 때 같이 배포될 수 있는 작업 갯수 세기 코드 import Foundation print(solution([93, 30, 55],[1, 30, 5])) print(solution([95, 90, 99, 99, 80, 99], [1, 1, 1, 1, 1, 1])..