# Devuff Challenge > 코딩 테스트(JavaScript 알고리즘), 빅데이터(SQL), 네트워크 문제 200개를 J1부터 MC까지 35단계 레벨로 풀고 A·B·C·D 등급으로 실력을 검증하는 무료 한국어 개발자 레벨 테스트입니다. devuff 개발자 커뮤니티(https://devuff.kro.kr)가 운영하며 devuff 계정(Discord·GitHub)으로 로그인합니다. - 코딩 테스트 88문제: 서버의 격리된 실행 환경에서 공개 예제와 숨은 테스트를 실행해 채점하며 시간·메모리 제한이 있습니다. - SQL 55문제: 실제 Postgres 데이터베이스에서 실행해 결과 행을 비교합니다. - 네트워크 57문제: 서브넷, TCP, 라우팅, DNS, HTTP 등을 다룹니다. - 모든 풀이는 녹화되어 다시 볼 수 있고, 제출한 답은 녹화된 입력으로 재현해 확인합니다. 붙여넣기 차단과 화면 이탈 감지 같은 안티치트가 있습니다. - 등급은 레이팅(레벨 점수 × 정확도 × 속도), 최고 통과 레벨, 통과한 분야 수, 정확도로 정합니다. ## 주요 페이지 - [홈](https://devuffchallenge.kro.kr/): 소개와 레벨별 문제 수 - [레벨 테스트](https://devuffchallenge.kro.kr/levels): 전체 문제를 레벨 순으로 - [코딩 테스트 문제](https://devuffchallenge.kro.kr/fields?f=code) - [SQL 문제](https://devuffchallenge.kro.kr/fields?f=data) - [네트워크 문제](https://devuffchallenge.kro.kr/fields?f=net) - [랭킹](https://devuffchallenge.kro.kr/rank) - [사이트맵](https://devuffchallenge.kro.kr/sitemap.xml) ## 레벨별 문제 - J1: [배열의 합](https://devuffchallenge.kro.kr/solve/sum-array), [문자열 뒤집기](https://devuffchallenge.kro.kr/solve/reverse-string), [짝수만 남기기](https://devuffchallenge.kro.kr/solve/filter-even), [회원 수 세기](https://devuffchallenge.kro.kr/solve/sql-count-users), [결제 총액](https://devuffchallenge.kro.kr/solve/sql-paid-total), [최고 주문 금액](https://devuffchallenge.kro.kr/solve/sql-max-amount), [HTTPS 기본 포트](https://devuffchallenge.kro.kr/solve/net-https-port), [HTTP는 어느 계층일까](https://devuffchallenge.kro.kr/solve/net-osi-http) - J2: [자릿수의 합](https://devuffchallenge.kro.kr/solve/digit-sum), [단어 첫 글자만 대문자로](https://devuffchallenge.kro.kr/solve/title-case), [단어 개수 세기](https://devuffchallenge.kro.kr/solve/count-words), [김씨 회원 수](https://devuffchallenge.kro.kr/solve/sql-kim-users), [3월 가입자 명단](https://devuffchallenge.kro.kr/solve/sql-march-joins), [SSH 기본 포트](https://devuffchallenge.kro.kr/solve/net-ssh-port), [상태 코드 404의 뜻](https://devuffchallenge.kro.kr/solve/net-http-404), [ping이 쓰는 프로토콜](https://devuffchallenge.kro.kr/solve/net-ping-icmp) - J3: [모음 세기](https://devuffchallenge.kro.kr/solve/count-vowels), [가장 큰 수](https://devuffchallenge.kro.kr/solve/max-value), [처음 나온 값만 남기기](https://devuffchallenge.kro.kr/solve/remove-duplicates), [지역 목록](https://devuffchallenge.kro.kr/solve/sql-regions), [pro 회원 목록](https://devuffchallenge.kro.kr/solve/sql-pro-users), [DNS가 하는 일](https://devuffchallenge.kro.kr/solve/net-dns), [IPv4 주소의 크기](https://devuffchallenge.kro.kr/solve/net-ipv4-bits), [메일 서버를 알려 주는 레코드](https://devuffchallenge.kro.kr/solve/net-dns-mx) - J4: [카이사르 암호](https://devuffchallenge.kro.kr/solve/caesar-shift), [n 이하의 소수 개수](https://devuffchallenge.kro.kr/solve/prime-count), [두 대각선의 합](https://devuffchallenge.kro.kr/solve/diagonal-sum), [대구·광주 team 회원](https://devuffchallenge.kro.kr/solve/sql-team-daegu-gwangju), [요금제별 회원 수](https://devuffchallenge.kro.kr/solve/sql-plan-counts), [IP로 MAC 주소 알아내기](https://devuffchallenge.kro.kr/solve/net-arp), [스위치가 보는 주소](https://devuffchallenge.kro.kr/solve/net-switch-mac), [CDN을 쓰는 까닭](https://devuffchallenge.kro.kr/solve/net-cdn) - J5: [FizzBuzz 배열](https://devuffchallenge.kro.kr/solve/fizzbuzz), [회문 판별](https://devuffchallenge.kro.kr/solve/palindrome), [진법 변환](https://devuffchallenge.kro.kr/solve/to-base), [큰 주문 세기](https://devuffchallenge.kro.kr/solve/sql-big-orders), [결제한 회원 수](https://devuffchallenge.kro.kr/solve/sql-paying-users), [사설 IP 찾기](https://devuffchallenge.kro.kr/solve/net-private-ip), [MAC 주소의 길이](https://devuffchallenge.kro.kr/solve/net-mac-bytes), [자기 자신을 가리키는 주소](https://devuffchallenge.kro.kr/solve/net-loopback) - J6: [주식 한 번 사고팔기](https://devuffchallenge.kro.kr/solve/stock-once), [읽고 말하기 수열](https://devuffchallenge.kro.kr/solve/look-and-say), [로마 숫자 읽기](https://devuffchallenge.kro.kr/solve/roman-to-int), [금액 구간별 주문 수](https://devuffchallenge.kro.kr/solve/sql-amount-buckets), [흔한 성씨](https://devuffchallenge.kro.kr/solve/sql-surname-counts), [DHCP 메시지 순서](https://devuffchallenge.kro.kr/solve/net-dhcp-dora), [메일을 보내는 프로토콜](https://devuffchallenge.kro.kr/solve/net-smtp) - J7: [두 번째로 큰 수](https://devuffchallenge.kro.kr/solve/second-largest), [가장 많이 나온 단어](https://devuffchallenge.kro.kr/solve/top-word), [나이순 이름 정렬](https://devuffchallenge.kro.kr/solve/sort-people), [지역별 평균 결제액](https://devuffchallenge.kro.kr/solve/sql-avg-region), [요일별 결제 건수](https://devuffchallenge.kro.kr/solve/sql-weekday-orders), [/26 의 호스트 수](https://devuffchallenge.kro.kr/solve/net-hosts-26), [실시간 통화의 전송 방식](https://devuffchallenge.kro.kr/solve/net-tcp-udp) - J8: [나선 순서로 읽기](https://devuffchallenge.kro.kr/solve/spiral-order), [중요도 프린터](https://devuffchallenge.kro.kr/solve/printer-queue), [연속 구간 요약](https://devuffchallenge.kro.kr/solve/summary-ranges), [지역·요금제 교차 집계](https://devuffchallenge.kro.kr/solve/sql-region-plan), [광주 회원의 결제 건수](https://devuffchallenge.kro.kr/solve/sql-gwangju-paid-counts), [IPv6 주소 줄여 쓰기](https://devuffchallenge.kro.kr/solve/net-ipv6-short), [로그인이 빠진 요청](https://devuffchallenge.kro.kr/solve/net-http-401) - J9: [애너그램](https://devuffchallenge.kro.kr/solve/anagram), [최소공배수](https://devuffchallenge.kro.kr/solve/lcm), [생명 게임 한 세대](https://devuffchallenge.kro.kr/solve/life-step), [가장 큰 주문 5건](https://devuffchallenge.kro.kr/solve/sql-top5), [가입 30일 안의 결제](https://devuffchallenge.kro.kr/solve/sql-early-buyers), [네트워크 주소 구하기](https://devuffchallenge.kro.kr/solve/net-network-addr), [이더넷의 기본 MTU](https://devuffchallenge.kro.kr/solve/net-ethernet-mtu) - J10: [후위 표기식 계산](https://devuffchallenge.kro.kr/solve/eval-rpn), [합이 맞는 부분집합 세기](https://devuffchallenge.kro.kr/solve/subset-sum-count), [오른쪽과 아래로만 가는 최소 비용](https://devuffchallenge.kro.kr/solve/grid-min-path), [평균보다 큰 결제](https://devuffchallenge.kro.kr/solve/sql-above-average), [월별 신규 가입자](https://devuffchallenge.kro.kr/solve/sql-signups-by-month), [IPv6에는 ARP가 없다](https://devuffchallenge.kro.kr/solve/net-ipv6-nd), [아예 저장하지 마라](https://devuffchallenge.kro.kr/solve/net-cache-no-store) - D1: [두 수의 합](https://devuffchallenge.kro.kr/solve/two-sum), [괄호 짝 맞추기](https://devuffchallenge.kro.kr/solve/brackets), [값이 겹치지 않는 가장 긴 구간](https://devuffchallenge.kro.kr/solve/longest-distinct-run), [주문이 없는 회원](https://devuffchallenge.kro.kr/solve/sql-no-orders), [환불 경험 회원의 지역](https://devuffchallenge.kro.kr/solve/sql-refunded-users-region), [브로드캐스트 주소 구하기](https://devuffchallenge.kro.kr/solve/net-broadcast), [쓸 수 있는 VLAN 번호](https://devuffchallenge.kro.kr/solve/net-vlan-ids) - D2: [합이 k인 구간 세기](https://devuffchallenge.kro.kr/solve/subarray-sum-k), [물을 가장 많이 담는 두 막대](https://devuffchallenge.kro.kr/solve/max-water), [가장 긴 연속한 수 묶음](https://devuffchallenge.kro.kr/solve/longest-consecutive), [지역별 결제·환불 건수](https://devuffchallenge.kro.kr/solve/sql-status-pivot), [2026년 결제가 없는 회원](https://devuffchallenge.kro.kr/solve/sql-dormant-payers), [IPv6 링크 로컬 접두사](https://devuffchallenge.kro.kr/solve/net-ipv6-link-local), [공인 IP 하나를 함께 쓰기](https://devuffchallenge.kro.kr/solve/net-pat) - D3: [런 길이 압축](https://devuffchallenge.kro.kr/solve/rle), [이분 탐색](https://devuffchallenge.kro.kr/solve/binary-search), [2025년 월별 매출](https://devuffchallenge.kro.kr/solve/sql-monthly), [전월 대비 매출 증감](https://devuffchallenge.kro.kr/solve/sql-mom-change), [알맞은 서브넷 마스크](https://devuffchallenge.kro.kr/solve/net-mask-500), [웹소켓으로 갈아타기](https://devuffchallenge.kro.kr/solve/net-websocket-101) - D4: [구간에 더하기를 여러 번](https://devuffchallenge.kro.kr/solve/range-add), [미로 탈출 최소 이동](https://devuffchallenge.kro.kr/solve/maze-shortest), [결제 횟수 3위까지](https://devuffchallenge.kro.kr/solve/sql-dense-rank-orders), [지역별 매출 비중](https://devuffchallenge.kro.kr/solve/sql-region-share), [조각의 Fragment Offset](https://devuffchallenge.kro.kr/solve/net-frag-offset), [무선 랜이 충돌을 피하는 까닭](https://devuffchallenge.kro.kr/solve/net-csma-ca) - D5: [행렬 회전](https://devuffchallenge.kro.kr/solve/rotate-matrix), [애너그램 묶음 수](https://devuffchallenge.kro.kr/solve/anagram-groups), [회원이 많은 지역](https://devuffchallenge.kro.kr/solve/sql-big-regions), [요금제별 1인당 결제액](https://devuffchallenge.kro.kr/solve/sql-plan-avg-spend), [3-way 핸드셰이크](https://devuffchallenge.kro.kr/solve/net-handshake), [해밍 거리로 정정하기](https://devuffchallenge.kro.kr/solve/net-hamming-correct) - D6: [배송에 필요한 배 용량](https://devuffchallenge.kro.kr/solve/ship-capacity), [필요한 회의실 수](https://devuffchallenge.kro.kr/solve/meeting-rooms), [지역별 결제와 방문](https://devuffchallenge.kro.kr/solve/sql-region-orders-visits), [결제액 4분위 그룹](https://devuffchallenge.kro.kr/solve/sql-spend-quartiles), [VLSM 세 번째 서브넷](https://devuffchallenge.kro.kr/solve/net-vlsm-third), [슬로 스타트의 cwnd](https://devuffchallenge.kro.kr/solve/net-slow-start) - D7: [구간 합치기](https://devuffchallenge.kro.kr/solve/merge-intervals), [움직이는 창의 최댓값](https://devuffchallenge.kro.kr/solve/window-max), [두 번째 주문](https://devuffchallenge.kro.kr/solve/sql-second-order), [요금제별 결제액 중앙값](https://devuffchallenge.kro.kr/solve/sql-plan-median), [경로 요약](https://devuffchallenge.kro.kr/solve/net-summary), [IPv4 헤더 체크섬](https://devuffchallenge.kro.kr/solve/net-ip-checksum) - D8: [기둥 사이에 고인 빗물](https://devuffchallenge.kro.kr/solve/trap-rain), [숫자 k개 지워 가장 작은 수](https://devuffchallenge.kro.kr/solve/remove-k-digits), [같은 날 같은 지역 가입](https://devuffchallenge.kro.kr/solve/sql-same-day-neighbors), [3개월 이동 평균 매출](https://devuffchallenge.kro.kr/solve/sql-moving-avg-3m), [이더넷 최소 프레임과 패딩](https://devuffchallenge.kro.kr/solve/net-ethernet-padding), [Go-Back-N 재전송 횟수](https://devuffchallenge.kro.kr/solve/net-go-back-n) - L1: [가장 긴 증가 부분 수열](https://devuffchallenge.kro.kr/solve/lis), [1로만 된 가장 큰 정사각형](https://devuffchallenge.kro.kr/solve/largest-square-ones), [배낭에 담을 최대 가치](https://devuffchallenge.kro.kr/solve/knapsack-01), [지역별 큰손 두 명](https://devuffchallenge.kro.kr/solve/sql-top2-region), [상위 5% 큰손](https://devuffchallenge.kro.kr/solve/sql-top-percentile), [대역폭-지연 곱](https://devuffchallenge.kro.kr/solve/net-bdp) - L2: [두 팀 합의 차이 줄이기](https://devuffchallenge.kro.kr/solve/partition-min-diff), [더 큰 값이 나올 때까지](https://devuffchallenge.kro.kr/solve/next-greater-distance), [장애물을 피하는 경로 수](https://devuffchallenge.kro.kr/solve/grid-paths-obstacles), [빈 날까지 채운 일별 매출](https://devuffchallenge.kro.kr/solve/sql-jan-2025-calendar), [상반기 전년 동월 대비](https://devuffchallenge.kro.kr/solve/sql-yoy-growth), [전송 지연과 전파 지연](https://devuffchallenge.kro.kr/solve/net-total-delay) - L3: [최소 동전 개수](https://devuffchallenge.kro.kr/solve/coin-change), [이어질 때마다 남은 무리 수](https://devuffchallenge.kro.kr/solve/groups-after-each-link), [한 글자씩 바꿔 가는 단어 사다리](https://devuffchallenge.kro.kr/solve/word-ladder-steps), [1월 누적 매출](https://devuffchallenge.kro.kr/solve/sql-running), [최장 접두사 일치](https://devuffchallenge.kro.kr/solve/net-lpm), [방화벽 규칙의 순서](https://devuffchallenge.kro.kr/solve/net-acl-first-match) - L4: [마감 전에 끝낼 과제 고르기](https://devuffchallenge.kro.kr/solve/deadline-homework), [히스토그램 속 가장 큰 직사각형](https://devuffchallenge.kro.kr/solve/histogram-rectangle), [가장 긴 연속 결제 개월](https://devuffchallenge.kro.kr/solve/sql-month-streak), [지역별 최다 주문 달](https://devuffchallenge.kro.kr/solve/sql-region-peak-month), [라우터 큐의 대기 시간](https://devuffchallenge.kro.kr/solve/net-mm1-wait) - L5: [섬의 개수](https://devuffchallenge.kro.kr/solve/islands), [지금까지의 중앙값](https://devuffchallenge.kro.kr/solve/running-median), [7일 재방문율](https://devuffchallenge.kro.kr/solve/sql-retention), [TCP 최대 처리량](https://devuffchallenge.kro.kr/solve/net-throughput), [STP 루트 브리지와 루트 포트](https://devuffchallenge.kro.kr/solve/net-stp-root-port) - L6: [가장 큰 XOR 쌍](https://devuffchallenge.kro.kr/solve/max-xor-pair), [벽 하나를 부술 수 있는 미로](https://devuffchallenge.kro.kr/solve/break-one-wall), [오랜 공백 뒤 돌아온 회원](https://devuffchallenge.kro.kr/solve/sql-long-gap-return), [이벤트 전이 횟수](https://devuffchallenge.kro.kr/solve/sql-event-transitions), [MAC으로 만든 링크 로컬 주소](https://devuffchallenge.kro.kr/solve/net-eui64-link-local) - M1: [편집 거리](https://devuffchallenge.kro.kr/solve/edit-distance), [행렬 곱셈 순서 정하기](https://devuffchallenge.kro.kr/solve/matrix-chain-order), [세션 나누기](https://devuffchallenge.kro.kr/solve/sql-sessions), [TCP Reno cwnd 추적](https://devuffchallenge.kro.kr/solve/net-reno-trace) - M2: [모든 마을을 잇는 최소 비용](https://devuffchallenge.kro.kr/solve/min-spanning-cost), [k번째로 작은 두 수의 차이](https://devuffchallenge.kro.kr/solve/kth-pair-distance), [가입 코호트 재결제](https://devuffchallenge.kro.kr/solve/sql-cohort-retention), [CRC 나머지 구하기](https://devuffchallenge.kro.kr/solve/net-crc-remainder) - M3: [최단 거리](https://devuffchallenge.kro.kr/solve/dijkstra), [모든 도시를 한 번씩 도는 순회](https://devuffchallenge.kro.kr/solve/traveling-salesman), [사흘 넘게 이어진 방문](https://devuffchallenge.kro.kr/solve/sql-visit-day-streaks), [OSPF 경로 비용](https://devuffchallenge.kro.kr/solve/net-ospf) - M4: [앞에 덧붙여 회문 만들기](https://devuffchallenge.kro.kr/solve/shortest-palindrome-prefix), [서로 껄끄럽지 않은 회식 명단](https://devuffchallenge.kro.kr/solve/tree-party-invite), [구매가 일어난 세션 비율](https://devuffchallenge.kro.kr/solve/sql-purchase-sessions), [흐름 제어로 더 보낼 수 있는 양](https://devuffchallenge.kro.kr/solve/net-flow-window) - M5: [작업 순서 정하기](https://devuffchallenge.kro.kr/solve/task-order), [트리 위 두 지점 사이 거리](https://devuffchallenge.kro.kr/solve/tree-distance-queries), [구매 퍼널](https://devuffchallenge.kro.kr/solve/sql-funnel), [패킷 교환 파일 전송 시간](https://devuffchallenge.kro.kr/solve/net-store-forward) - M6: [반값 통행권 한 장](https://devuffchallenge.kro.kr/solve/half-price-ticket-path), [직사각형들이 덮은 넓이](https://devuffchallenge.kro.kr/solve/rectangle-union-area), [매출 절반을 만드는 회원](https://devuffchallenge.kro.kr/solve/sql-pareto-half), [두 번 조각나는 패킷](https://devuffchallenge.kro.kr/solve/net-refragment) - E1: [바뀌는 배열의 구간 합](https://devuffchallenge.kro.kr/solve/range-sum), [구간에 더하고 구간 합 구하기](https://devuffchallenge.kro.kr/solve/range-add-range-sum), [BGP 최적 경로](https://devuffchallenge.kro.kr/solve/net-bgp) - E2: [어디서든 오갈 수 있게 길 더하기](https://devuffchallenge.kro.kr/solve/roads-to-strongly-connect), [선형 점화식의 아주 먼 항](https://devuffchallenge.kro.kr/solve/linear-recurrence-nth), [최근 7일 방문자 추이](https://devuffchallenge.kro.kr/solve/sql-rolling-weekly-visitors) - E3: [뒤집힌 쌍 세기](https://devuffchallenge.kro.kr/solve/inversions), [볼록 껍질의 꼭짓점 수와 넓이](https://devuffchallenge.kro.kr/solve/convex-hull-area), [링크를 채우는 순서 번호 비트](https://devuffchallenge.kro.kr/solve/net-sr-seq-bits) - E4: [자릿수 합이 k의 배수인 수](https://devuffchallenge.kro.kr/solve/digit-sum-multiple-count), [구간 속 서로 다른 값의 개수](https://devuffchallenge.kro.kr/solve/distinct-in-range), [세션 안의 구매 퍼널](https://devuffchallenge.kro.kr/solve/sql-session-funnel) - MC: [가장 긴 반복 부분 문자열](https://devuffchallenge.kro.kr/solve/longest-repeat), [최소 비용으로 물건 보내기](https://devuffchallenge.kro.kr/solve/min-cost-delivery), [묶음 합의 제곱합 최소로 나누기](https://devuffchallenge.kro.kr/solve/split-min-square-sum), [서로 다른 부분 문자열의 수](https://devuffchallenge.kro.kr/solve/distinct-substring-count), [거리가 K 이하인 정점 쌍](https://devuffchallenge.kro.kr/solve/tree-pairs-within-k), [첫 HTTPS 다운로드의 총 시간](https://devuffchallenge.kro.kr/solve/net-page-load-time) ## 운영 - devuff 개발자 커뮤니티: https://devuff.kro.kr