솔루션 태그 지정


애널라이저 태그는 풀이가 어떻게 해결되었는지 식별하는 데 사용해요.

이 태그는 다음과 같은 용도로 사용할 수 있어요:

  • 풀이를 접근법에 연결하기
  • 풀이를 개념에 연결하기
  • 특정 태그가 있는 풀이 검색하기

형식

태그는 <category>:<thing> 형식으로 되어 있는 문자열이에요.

네 가지 범주를 지원하며, 가장 높은 수준에서 가장 낮은 수준 순으로 나열하면 다음과 같아요:

Category Description Specificity Examples
paradigm 프로그래밍 패러다임 매우 높은 수준이며 트랙에 특화되지 않음 imperative, functional
technique 사용 중인 기법 높은 수준이며 대부분 트랙에 특화되지 않음 recursion, immutability
construct 언어 구성 요소 많은 것이 트랙에 특화되지 않음 bitwise-and, for-loop
uses 타입이나 메서드처럼 언어에 특화된 사용법 낮은 수준이며 트랙에 특화됨 DateTime.add_seconds, IEnumerable

태그 예시는 다음과 같아요:

  • paradigm:functional
  • technique:recursion
  • construct:bitwise-and
  • uses:DateTime.add_seconds

자주 사용하는 태그

트랙에서 풀이에 자유롭게 태그를 붙일 수 있지만, 가능하면 아래에 나열한 자주 사용하는 태그를 사용하는 것을 권장해요. 공통된 태그 집합을 사용하면 트랙 간 풀이 연결처럼 멋진 기능을 만들 수 있어요.

패러다임

Tag Description
paradigm:array 배열 프로그래밍을 사용해요.
paradigm:declarative 선언형 프로그래밍을 사용해요.
paradigm:functional 함수형 프로그래밍을 사용해요.
paradigm:generic 제네릭 프로그래밍을 사용해요.
paradigm:imperative 명령형 프로그래밍을 사용해요.
paradigm:logic 논리 프로그래밍을 사용해요.
paradigm:meta 메타프로그래밍을 사용해요.
paradigm:object-oriented 객체 지향 프로그래밍을 사용해요.
paradigm:procedural 절차적 프로그래밍을 사용해요.
paradigm:reflective 리플렉션 프로그래밍을 사용해요.
paradigm:stack-oriented 스택 지향 프로그래밍을 사용해요.

기법

Tag Description
technique:bit-manipulation 비트를 조작해요. 보통 비트 연산자(예: AND, XOR, 왼쪽 시프트)를 사용해요
technique:bit-shifting 숫자의 비트를 시프트해요
technique:boolean-logic 불리언 논리(AND, OR, NOT)를 수행해요
technique:composition 합성을 사용해요
technique:concurrency 코드를 동시에 실행해요
technique:enumeration 값을 열거해요
technique:error-handling 오류를 처리해요
technique:exceptions 예외를 잡거나 던져요
technique:function-composition 함수 합성을 사용해요
technique:generator 제너레이터를 사용해요
technique:higher-order-functions 고차 함수를 사용해요
technique:immutability 불변성을 사용해요
technique:immutable-collection 내용이 불변인 컬렉션을 사용해요
technique:inheritance 상속을 사용해요
technique:laziness 값을 필요할 때만 지연해서 만들어요
technique:locks 자원에 대한 독점적 접근을 위해 잠금을 사용해요
technique:looping 루프를 사용해요
technique:math 수학 연산을 사용해요
technique:memory-management 메모리를 관리해요
technique:ordering 데이터에 순서를 부여해요
technique:parallelism 코드를 병렬로 실행해요
technique:parser 데이터를 파싱해요
technique:pointers 포인터를 사용해요
technique:randomness 무작위성을 사용해요
technique:recursion 재귀를 사용해요
technique:regular-expression 정규 표현식을 사용해요
technique:short-circuiting 불필요한 평가를 막기 위해 단축 평가를 사용해요
technique:sorted-collection 원소가 항상 정렬된 컬렉션을 사용해요
technique:sorting 데이터를 정렬해요
technique:tail-call-optimization 효율적인 재귀를 위해 꼬리 호출 최적화를 사용해요
technique:type-conversion 값을 한 타입에서 다른 타입으로 변환해요
technique:unsafe 안전하지 않은 코드(예: 포인터 연산)를 사용해요

구성 요소

Tag Description
construct:abstract-class 추상 클래스를 정의해요
construct:abstract-method 추상 메서드를 정의해요
construct:add-assignment 덧셈과 대입을 결합해요
construct:add 덧셈을 사용해요
construct:array 배열을 사용하거나 선언해요
construct:assignment 값을 변수나 이름에 대입하거나 바인딩해요
construct:async-await async/await를 사용해요
construct:attribute 멤버에 메타데이터를 붙여요
construct:auto-implemented-property 자동 구현 속성을 정의해요
construct:big-integer 큰 정수를 사용해요
construct:binary-number 이진 표기법으로 숫자를 정의해요
construct:bit-array 비트 배열을 사용하거나 선언해요
construct:bitwise-and-assignment 비트 AND를 대입과 결합해요
construct:bitwise-and 비트 AND를 수행해요
construct:bitwise-left-shift-assignment 비트 왼쪽 시프트를 대입과 결합해요
construct:bitwise-left-shift 비트 왼쪽 시프트를 수행해요
construct:bitwise-not 비트 NOT을 수행해요
construct:bitwise-or-assignment 비트 OR을 대입과 결합해요
construct:bitwise-or 비트 OR을 수행해요
construct:bitwise-right-shift-assignment 비트 오른쪽 시프트를 대입과 결합해요
construct:bitwise-right-shift 비트 오른쪽 시프트를 수행해요
construct:bitwise-xor-assignment 비트 XOR을 대입과 결합해요
construct:bitwise-xor 비트 XOR을 수행해요
construct:block 문 목록을 포함하는 블록을 정의해요
construct:boolean 불리언 값을 정의하거나 사용해요
construct:boxing 박싱을 사용해요
construct:break 루프에서 빠져나와요
construct:byte 부호 없는 8비트 정수를 사용해요
construct:catch 예외를 잡아요
construct:char 문자를 사용해요
construct:checked-arithmetic 오버플로를 검사하는 산술 연산을 사용해요
construct:class 클래스를 정의해요
construct:collection-initializer 초기화자를 통해 컬렉션의 값을 설정해요
construct:command 명령을 정의해요
construct:comment 주석을 정의해요
construct:comparison-chaining 비교 호출을 연결해요
construct:comparison 두 값의 상대적 순서를 비교해요
construct:complex-number 복소수를 사용해요
construct:computed-string 계산된 문자열을 정의해요
construct:concatenation 값을 이어 붙여요
construct:conditional-access 메서드에 조건부로 접근해요
construct:conditional-operator 삼항 조건 연산자를 사용해요
construct:conditional 코드를 조건부로 실행해요
construct:constant 상수(불변) 값을 정의해요
construct:constructor 생성자를 정의해요
construct:continue 루프의 다음 반복으로 넘어가요
construct:conversion-operator 변환 연산자를 정의해요
construct:copy 값을 복사해요
construct:coroutine 코루틴을 정의하거나 사용해요
construct:custom-attribute 사용자 지정 특성을 정의해요
construct:date-time 날짜와 시간을 함께 나타내는 값을 사용해요
construct:date 날짜(시간 제외)를 나타내는 값을 사용해요
construct:decimal 128비트 부동소수점 수를 사용해요
construct:decrement 값을 감소시켜요
construct:default-interface-implementation 인터페이스에 기본 구현을 정의해요
construct:default 기본값(예: 매개변수의 기본값)을 정의해요
construct:destructuring 값을 여러 부분으로 분해해요
construct:dictionary-comprehension 컴프리헨션으로 딕셔너리를 만들어요
construct:dictionary 딕셔너리/맵을 사용하거나 정의해요
construct:discard 특별한 무시 값을 사용해요
construct:divide-assignment 나눗셈과 대입을 결합해요
construct:divide 나눗셈을 사용해요
construct:do-while-loop do-while문을 사용해요
construct:double 64비트 부동소수점 수를 사용해요
construct:else else 분기를 정의해요
construct:enum 열거형(값의 열거)을 정의하거나 사용해요
construct:equality 두 값이 서로 같은지 비교해요
construct:error 오류를 정의하거나 사용해요
construct:event 이벤트를 정의하거나 사용해요
construct:exception 예외를 정의하거나 사용해요
construct:explicit-conversion 한 타입에서 다른 타입으로 명시적으로 변환해요
construct:explicit-import 필요한 기능만 선택적으로 임포트해요
construct:exponentiation 값의 거듭제곱을 계산해요
construct:expression-bodied-member 식 본문 멤버를 정의해요
construct:extension-method 확장 메서드를 정의해요
construct:field-access 필드에 접근해요
construct:field 필드를 정의해요
construct:finally 특정 코드 블록이 항상 실행되도록 finally를 사용해요
construct:flags-enum 플래그 열거형을 정의하거나 사용해요
construct:float 32비트 부동소수점 수를 사용해요
construct:floating-point-number 부동소수점 수를 사용해요
construct:for-loop for문을 사용해요
construct:foreach foreach문을 사용해요
construct:function-overloading 함수 오버로딩을 사용해요
construct:function 함수를 정의해요
construct:generator 제너레이터 함수나 메서드를 정의해요
construct:generic-function 하나 이상의 타입으로 매개변수화된 함수를 정의해요
construct:generic-method 하나 이상의 타입으로 매개변수화된 메서드를 정의해요
construct:generic-type 하나 이상의 타입으로 매개변수화된 타입을 정의해요
construct:getter 게터를 정의해요
construct:global-function 전역에서 사용할 수 있는 함수를 정의해요
construct:global-variable 전역에서 사용할 수 있는 변수를 정의해요
construct:header 헤더 파일을 정의해요
construct:hexadecimal-number 16진수 표기법으로 숫자를 정의해요
construct:if if문을 사용해요
construct:implicit-conversion 한 타입에서 다른 타입으로 암시적으로 변환해요
construct:implicit-loop 값 컬렉션을 암시적으로 반복해요
construct:implicit-return 값을 암시적으로 반환해요
construct:import 다른 곳(예: 네임스페이스나 모듈)에 구현된 기능을 임포트해요
construct:increment 값을 증가시켜요
construct:index-operator 객체를 인덱싱하기 위한 연산자를 정의해요
construct:indexer 인덱서를 정의하거나 사용해요
construct:indexing 인덱스로 값에 접근해요
construct:inequality 두 값이 서로 다른지 비교해요
construct:infix-operator 중위 연산자를 정의해요
construct:initialization 생성 후 객체를 초기화해요
construct:initializer-list 객체 필드의 값을 초기화해요
construct:initializer 객체를 초기화해요
construct:instance 타입의 인스턴스를 만들거나 사용해요
construct:instantiation 타입의 인스턴스를 만들어요
construct:int 부호 있는 32비트 정수를 사용해요
construct:integral-number 정수를 사용해요
construct:interface 인터페이스를 정의해요
construct:invocation 메서드/함수를 호출해요
construct:iterator 반복할 수 있는 함수나 메서드를 정의해요
construct:jagged-array 가변 배열(배열의 배열)을 사용해요
construct:lambda 람다(익명 함수)를 정의해요
construct:linked-list 연결 리스트를 사용해요
construct:linq LINQ를 사용해요
construct:list-comprehension 컴프리헨션으로 배열을 만들어요
construct:list 배열을 사용해요
construct:local-function 로컬 함수를 정의해요
construct:local-variable 로컬 변수를 정의해요
construct:lock 잠금을 사용해요
construct:logical-and 논리 AND를 수행해요
construct:logical-not 논리 NOT을 수행해요
construct:logical-or 논리 OR을 수행해요
construct:long 부호 있는 64비트 정수를 사용해요
construct:loop 루프를 정의해요
construct:macro 매크로를 정의해요
construct:membership-test 값이 다른 값에 속하는지 검사해요
construct:metatable 메타테이블을 정의해요
construct:method-chaining 여러 메서드 호출을 연결해요
construct:method-overloading 메서드 오버로딩을 사용해요
construct:method-override 오버라이드된 메서드를 정의해요
construct:method 메서드를 정의해요
construct:module 모듈(코드의 묶음)을 정의해요
construct:modulo-assignment 나머지 연산을 대입과 결합해요
construct:modulo 나눗셈의 나머지를 사용해요
construct:multi-dimensional-array 다차원 배열을 사용해요
construct:multiline-string 여러 줄 문자열을 정의해요
construct:multiple-assignment 여러 값을 한 번에 대입해요
construct:multiple-dispatch 다중 디스패치를 사용해요
construct:multiply-assignment 곱셈과 대입을 결합해요
construct:multiply 곱셈을 사용해요
construct:named-argument 이름으로 인자를 전달해요
construct:namespace 네임스페이스(코드의 묶음)를 정의해요
construct:nested-function 중첩 함수를 정의해요
construct:nested-type 중첩 타입을 정의해요
construct:nesting 중첩을 사용해요
construct:nint 플랫폼별 부호 있는 정수(32비트 또는 64비트)를 사용해요
construct:nuint 플랫폼별 부호 없는 정수(32비트 또는 64비트)를 사용해요
construct:null 값이 없음을 나타내기 위해 null/nil을 사용해요
construct:nullability null/nil 값을 다뤄요
construct:number 숫자(부호 있음 또는 부호 없음)를 사용해요
construct:object-initializer 초기화자를 통해 객체의 값을 설정해요
construct:octal-number 8진수 표기법으로 숫자를 정의해요
construct:operator-overloading 연산자 오버로딩을 사용해요
construct:option 옵션 타입을 사용해요
construct:optional-parameter 선택적 매개변수를 정의해요
construct:overflow 산술 오버플로를 사용해요
construct:parameter 매개변수를 정의해요
construct:parenthesized-expression 식을 괄호로 감싸요
construct:pattern-matching 패턴 매칭을 사용해요
construct:pattern 패턴 매칭에 사용되는 패턴을 정의해요
construct:pipe-backward 역방향 파이프를 사용해요
construct:pipe-forward 정방향 파이프를 사용해요
construct:pipeline 파이프라인을 정의해요
construct:point-free 함수가 다루는 인자를 명시하지 않고 함수를 정의해요
construct:pointer 포인터를 사용해요
construct:postfix-decrement 후위 표기법으로 값을 감소시켜요
construct:postfix-increment 후위 표기법으로 값을 증가시켜요
construct:prefix-decrement 전위 표기법으로 값을 감소시켜요
construct:prefix-increment 전위 표기법으로 값을 증가시켜요
construct:print 값을 콘솔에 출력해요
construct:property 속성(getter/setter)을 정의해요
construct:query-expression 식을 통해 데이터를 쿼리해요
construct:queue 큐를 사용해요
construct:range 범위를 정의해요
construct:read-only 읽기 전용 값을 정의해요
construct:record 레코드를 정의해요
construct:regular-expression 정규 표현식을 정의하거나 사용해요
construct:result 결과 타입을 사용해요
construct:return-type 함수나 메서드의 반환 타입을 정의해요
construct:return 함수/메서드에서 반환해요
construct:sbyte 부호 있는 8비트 정수를 사용해요
construct:scientific-notation-number 과학적 표기법으로 숫자를 정의해요
construct:set-comprehension 컴프리헨션으로 집합을 만들어요
construct:set 집합을 사용해요
construct:setter 세터를 정의해요
construct:short 부호 있는 16비트 정수를 사용해요
construct:slice 슬라이스를 사용해요
construct:stack 스택을 사용해요
construct:static-field 정적 필드를 정의해요
construct:static-method 정적 메서드를 정의해요
construct:string-formatting 형식 문자열을 통해 문자열을 만들어요
construct:string-interpolation 보간 문자열을 정의해요
construct:string 문자열을 정의해요
construct:struct 구조체를 정의해요
construct:subtract-assignment 뺄셈과 대입을 결합해요
construct:subtract 뺄셈을 사용해요
construct:sum-type 합 타입을 정의해요
construct:switch switch문을 사용해요
construct:table 테이블을 정의해요
construct:template-alias 템플릿의 별칭을 정의해요
construct:template-parameter 템플릿 매개변수를 정의해요
construct:template 템플릿을 정의해요
construct:throw 예외를 던져요
construct:time 시간을 나타내는 객체를 사용해요
construct:try 예외를 명시적으로 처리해요
construct:tuple 튜플을 사용해요
construct:type-alias 타입의 별칭을 정의해요
construct:type-conversion 값을 다른 타입으로 변환(캐스트)해요
construct:type-extension 타입에 새로운 기능을 추가해요
construct:type-inference 값/함수의 타입을 자동으로 추론해요
construct:type-test 값이 특정 타입인지 검사해요
construct:uint 부호 없는 32비트 정수를 사용해요
construct:ulong 부호 없는 64비트 정수를 사용해요
construct:unary-minus 단항 마이너스를 사용해요
construct:unary-plus 단항 플러스를 사용해요
construct:underscored-number 자릿수 구분 기호로 밑줄을 넣은 숫자를 사용해요
construct:union-type 유니온 타입을 정의해요
construct:user-defined-exception 사용자 정의 예외를 정의해요
construct:ushort 부호 없는 16비트 정수를 사용해요
construct:using-directive 다른 파일의 코드를 사용해요
construct:using-statement using 문을 통해 값을 할당하고 해제해요
construct:varargs 0개 이상의 값을 전달할 수 있는 매개변수를 정의해요
construct:variable 변수를 선언해요
construct:vector 벡터를 사용해요
construct:verbatim-string 이스케이프 시퀀스가 없는 축자 문자열을 사용해요
construct:virtual-method 가상 메서드를 정의해요
construct:visibility-modifiers 구성 요소(예: 메서드나 클래스)의 가시성을 지정해요
construct:while-loop while문을 사용해요
construct:yield 루프에서 값을 지연해서 산출해요

사용

이 범주는 언어에 특화되어 있어, 여기에 자주 사용하는 태그는 없어요.