【PS의 아이】

6월 17일부터 7월 6일까지 5개의 대회에 참가했습니다.

대회에디토리얼SolveRank
송도고 코드마스터 2023 Open Contest에디토리얼2 +0:31157/419
FunctionCup 2023 Open Contest-1 +55105/142
강원도 대학생 코딩 경진대회 Open Contest-1 +7089/138
UCPC 2023 예선 Open Contest에디토리얼1 +114179/227
2023 대구소프트웨어고 프로그래밍 경진대회 (DPC 2023) Open Contest-4 +15840/224

5월 중~하순에 7개의 대회에 출전(해서 1문제씩 긁은)한 후기는 여기서 볼 수 있습니다.

이 중 DPC는 6문제 중 무려 4문제를 풀어 내며 PS 인생 역사상 최대의 성과를 기록했습니다.

28235

CodeMaster A, AC / 1 +0:10

간단한 구현 문제입니다. if else를 적당하게 써 주면 됩니다.

28236

CodeMaster B, AC / 1 +0:21

학교 다니던 시절의 저를 생각나게 하는 문제였습니다. 수업에는 관심 없고 급식에만 관심이 있었거든요(제가 다녔던 고등학교는 급식이 맛있는 편이었습니다). 송도고의 급식실은 던전처럼 생겼군요 학생들은 반드시 가장 빠른 경로로 움직인다고 했기 때문에, 반드시 오른쪽 끝으로 간 다음 계단을 이용해 내려갈 것입니다. 3층에서 1층으로 신뢰의 도약을 한다는 선택지 같은 건 없습니다. 그렇다면, 오른쪽 계단까지 가는 길이와, 계단을 통해 1층으로 내려가는 길이를 더해 이 값이 가장 작은 반(들) 중 번호가 가장 작은 반의 번호를 출력하면 됩니다.

28270

FunctionCup MN, PAC / 1점 / 1 +55

사실 함수컵에서 이 문제가 없었다면 단 한 문제도 맞히지 못했을 겁니다.

함수컵의 문제. 난이도가 골드 5부터 시작한다.

이 문제의 서브태스크 1은 문제에서 주어진 예제만 들어옵니다. 예제 입력만 구분해 출력하도록 했습니다. 나중에 제 실력이 더 늘어나게 된다면 다시 풀어보겠습니다.

28281

강원도 대학생 코딩 경진대회 A, AC / 1 +70

연속된 이틀의 비용을 합친 값이 가장 작은 걸 구한 후, 거기에 X를 곱해 출력하면 됩니다.

28295

UCPC A, AC / 2 +114

UCPC 예선은 보통 A번 문제가 가장 쉽습니다. 그래서 일단 A번부터 긁었습니다.

학생들은 우향우를 하거나, 뒤로 돌거나, 좌향좌를 합니다. 10개의 입력을 받은 뒤, 마지막에 학생들은 어디를 보고 있는지를 출력하면 되는 쉬운 문제였습니다. 북쪽부터 0, 동쪽을 1, 남쪽을 2, 서쪽을 3으로 정한 뒤 각 입력에 따라 방향을 바꿔줬습니다.

이후 에디토리얼을 보았는데, “좌향좌”를 오른쪽으로 270도 도는 것으로 생각할 수 있습니다. 이렇게 되면 문제 풀이가 더 간단해집니다.

에디토리얼에 따르면, 출제자의 정해는 다음과 같습니다.

print("NESW"[sum(int(input()) for _ in range(10)) % 4])

여담이지만, UCPC에 출전하는 팀 이름이 너무 웃긴게 많습니다. 실수로물을너무많이줘버린나의라임오렌지과대성장트리 라던가, 멕시코시티노점상에서타코사먹는윤창기 라던가요.

28289

DPC A, AC / 1 +13

숫자 세 개씩이 들어옵니다. 첫 번째 숫자가 1이라면 이 사람은 아무 과에도 속할 수 없습니다. 그렇지 않다면, 이 사람은 반드시 어느 과에 속하므로 두 번째 숫자에 따라 적당하게 넣어주면 됩니다.

28290

DPC B, AC / 1 +16

문자열을 입력받고, 문제에서 제시한 문자열인지 확인하기만 하면 됩니다.

28292

DPC C, AC / 3 +94

읽고 말하기 수열, 개미 수열이라고 하는 수열에 대한 문제였습니다. 이 수열의 최대 100번째 수를 무턱대고 구하려고 코드를 짜고 돌려봤습니다. 당연히 시간 초과가 났습니다. 시간 제한이 1초인데, 나중에 이 글을 쓰는 시점에서 다시 돌려보니까 20분이 넘어가고 있었습니다. 뭔가 다른 방법이 필요했습니다.

당연히 이걸 통으로 구해서 푸는 문제는 아닐 것 같아 수열의 처음 15개를 보고 있는데, 수열의 어디에도 4는 나오지 않았습니다. 그래서 혹시 1 아니면 2 아니면 3 아닌가? 싶은 생각이 들었고, 역시나였습니다.

이 수열의 2번째 수까지는 1밖에 나오지 않습니다. 5번째 수까지는 1과 2만 나옵니다. 그 이외의 경우에는 3까지만 나온다고 추측하고, 입력에 따라 1 또는 2 또는 3을 출력하는 코드를 작성했더니 맞았습니다!!를 받았습니다.

28293

DPC E, AC / 2 +35

문제는 ab승의 자릿수를 구하는 것이었습니다. b \times \log_{10}\left ( a \right ) + 1 을 하면 구할 수 있다는 것을 어딘가에서 봐서 기억하고 있었습니다(대체 이걸 왜 알고 있는 거지). 그래서 그대로 구현했고, 맞았습니다!!를 받았습니다.

그런데, 대회 종료 이후 문제에 실수 오차와 관련된 오류가 있다는 의견이 있었고, 이 글을 작성 중인 현재는 채점 준비 중 이 걸려 있습니다. 처음으로 풀었던 Gold IV 문제였는데, 조금 아쉽긴 합니다.

실수를 다루는 문제에서는 컴퓨터에서 발생할 수 있는 오차를 항상 고려해야 합니다. 관련해서는 shiftpsh 님의 글이 도움이 됩니다.


언젠가는 더 어려운 문제도 풀 수 있게 되겠죠...? 대회 올솔도 하고 뭐 그런... 날이 오긴 할 겁니다.

틀리는 건 싫으니까 브론즈에 올인하려고 합니다.

5월 20일부터 21일까지 무려 4개의 대회에, 27일부터 28일까지 3개의 대회에 참가했습니다(1문제씩만 푼 게 '참가했다'라고 할 수 있을 지는 모르겠지만요...).

대회에디토리얼SolveRank
2023 SCON Open Contest(숭실대학교)에디토리얼1 +150197/215
2023 POSTECH Programming Contest Open에디토리얼1 +877/214
2023 인하대학교 프로그래밍 경진대회(IUPC) Open Contest에디토리얼1 +51181/402
2023 서강대학교 청정수컵 Open Contest에디토리얼3 +303132/383
2023 아주대학교 프로그래밍 경시대회 APC Open Contest에디토리얼3 +42949/278
2023 서울대학교 SCSC 프로그래밍 경시대회 Open Contest에디토리얼079/114
월간 향유회 2023. 05.-0131/147

대회 시간 동안 전부 밖에 나가 있었기 때문에, 폰코딩으로 문제를 풀 수밖에 없었습니다. IDE 그런 거 없이, 예제도 돌려보지 않고 제출했습니다. 틀렸습니다를 몇 번을 받았더라...?

28113

SCON A, AC / 4 +150

A분 뒤에 버스가 오고, B분 뒤에 지하철이 옵니다. 다만, N분 동안 지하철 승강장까지 걸어야 합니다. 그래서, 어느 쪽을 먼저 탈 수 있는지를 보면 됩니다.

그리고 에디토리얼을 보고, 문제를 다시 보고 알게 된 사실이 있습니다. N \leq B이기 때문에, N은 이 문제를 푸는 데 전혀 상관이 없습니다! AB만 비교하면 이 문제를 풀 수 있었습니다. 제 코드는 NA, B를 모두 비교했지만, 그럴 필요가 없었습니다. 문제를 잘 읽자...

저는 문제를 잘못 이해해 무려 3번의 틀렸습니다를 받았습니다. 그럴 문제가 아닌데...

28114

SCON B

첫번째 팀명은 그냥 100으로 나눈 나머지를 이어 붙이면 되고, 두번째 팀명은 솔브 수 내림차순으로 정렬한 다음 성씨의 첫 글자를 이어 붙이면 됩니다. 저는 이때 밖에 나와 있었기 때문에, 이 문제를 스킵하고 대회 종료 이후 풀었습니다.

28097

PPC A, AC / 1 +8

포닉스가 공부하는 시간의 총 합에, ( N - 1 ) \times 8을 더한 뒤, 24로 나눈 몫과 나머지를 출력하면 됩니다.

a = int(input())
b = sum(map(int, input().split()))
c = b + ((a-1)*8)
print(f'{c//24} {c%24}')

28074

IUPC A, AC / 2 +51

모비스를 찾으면 됩니다. 주어진 문자열에서 M, O, B, I, S가 모두 한 개 이상 존재하면 YES를, 그렇지 않으면 NO를 출력하면 되는 간단한 문제였는데, 제가 밖에서 폰으로 코딩을 하다가 대소문자를 잘못 쳐서... 틀렸습니다를 받았습니다. 문제를 잘 읽자 2...

28061

청정수컵 A, AC / 1 +76

각 나무에서 A - (N + 1 - i)를 구한 값의 최대값을 구하면 되는 문제입니다. for문을 돌려서 해결했습니다.

28062

청정수컵 B, AC / 2 +109

준석이가 사탕을 몇 개 가져갈지 구하면 됩니다.

사탕들의 합이 짝수라면 그냥 합을 출력하면 됩니다. 홀수라면, 1개 이상의 홀수 사탕이 반드시 존재하기 때문에, 그 사탕을 빼고 가져가면 됩니다.

28063

청정수컵 C, AC / 2 +118

와! 동전이 복사가 된다고! 저도 이런 기계가 있었으면 좋겠습니다. 500원짜리를 복사해서 오락실에 들고 가기...

상하좌우 중 한 개를 선택한다면, 그 방향으로는 다시 선택할 필요가 없습니다. 그렇기 때문에, 정답은 반드시 4 이하입니다.

  • 기계의 크기가 1이라면 동전을 복사할 필요가 없으므로 정답은 0입니다.
  • 아니고, 기계의 꼭짓점에 동전이 있다면 정답은 2입니다.
  • 아니고, 기계의 모서리에 동전이 있다면 정답은 3입니다.
  • 아니라면 정답은 4입니다.

28135

APC A, AC / 1 +77

1부터 N까지 쭉 세주면서 50이 포함되어있는지를 체크하면 됩니다. 숫자를 문자열로 바꿔서 문자열 안에 들어가 있는지를 확인했습니다.

28125

APC B, AC / 2 +125

일단 문자열을 받고, 테이블에 나와있는 대로 바꿔줍니다. 이때 \' 또는 \\'의 구별에 주의해야 합니다. 저는 그렇지 않아서 틀렸습니다를 한 번 받았습니다...

그리고 바꾼 횟수와 문자열의 길이를 비교해서 절반 이상이면 문자열을 버리고 I don't understand를 출력하면 됩니다.

28136

APC C, AC / 3 +227

1부터 N까지 보면서 다음 번 수가 작거나 같다면 원, 탁!을 수행하면 됩니다. 문제에서 오름차순이라고 말을 했길래 작은지만 검사했는데, 문제를 끝까지 읽지 않았습니다... 그리고 받은 무수한 틀렸습니다의 요청

오름차순 수열이란 뒤로 갈수록 숫자가 커지는 수열을 의미한다.

문제를 잘 읽자 3...

28086

SCSC A, RTE / 3

입력 안에 들어있는 문자열 중 / 또는 *가 있는지 검사하고, 그렇지 않으면 + 또는 -가 있는지 검사합니다. 이후, 연산자에 따라 실제로 계산을 해 보면 되는데, 파이썬은 oct, int라는 아주 좋은 도구가 있습니다. 실제로 계산한 결과를 출력하면 됩니다... 만, 어째서인지 계속 36%에서 런타임 에러가 뜹니다. 대체 왜일까요...? 파루빗토 쨩은 왜 계산하기를 거부하는 것일까요...

업데이트: 제가 작성한 코드에서, 앞자리가 음수고 연산이 뺄셈인 경우에 대한 처리를 하지 않았다는 것을 알게 되었고, 고쳤더니 맞았습니다!!를 받았습니다.

# 원래 코드

import sys
i = sys.stdin.readline().strip()

if '/' in i:
    a = i.split('/')
    if int(a[1], 8) == 0:
        print('invalid')
        exit(0)
    b = int(int(a[0], 8) // int(a[1], 8))
elif '*' in i:
    a = i.split('*')
    b = int(a[0], 8) * int(a[1], 8)
elif '+' in i:
    a = i.split('+')
    b = int(a[0], 8) + int(a[1], 8)
elif '-' in i:
    a = i.split('-')
    b = int(a[0], 8) - int(a[1], 8)

if b < 0:
    print('-' + oct(abs(b))[2:])
else:
    print(oct(b)[2:])

28138

5월 향유회 A, TLE / 2

저는 단순히 1부터 N까지 전부 돌려 보면서 m에다가 더하는 식으로 구현했는데, 1 \leq N \leq 10^{12}입니다. N이 꽤 크기 때문에 당연히 시간 초과를 받았습니다.

jh05013님의 풀이에 의하면,

N-R을 m으로 나눈 나머지가 0이어야 합니다. 즉, m은 N-R의 약수여야 합니다.

그렇다고 다 되는 건 아니고, m이 R보다 커야 합니다. 즉, N-R의 약수 중 R보다 큰 것의 개수를 세면 됩니다.

어떤 수 X의 약수는 O(\sqrt{x}) 시간에 전부 알아낼 수 있음이 알려져 있습니다. https://www.acmicpc.net/step/18

약수를 찾으면 되겠군요. 이 문제는 나중에 천천히 풀어볼까 합니다.


이렇게 7개 대회를 찍먹해 보았습니다.

BOJ Tag 플러그인

백준 온라인 저지solved.ac의 여러 정보들을 예쁘게 보여주는 워드프레스 플러그인입니다.

Github에서 보기

현재 최신 버전은 r231231a 입니다.

현재 solved.ac API 크롤링이 필요한 부분(문제 정보, 유저 정보)의 크롤링에 문제가 있어 해당 부분의 코드를 비활성화 하였습니다.

예시

설치

  1. https://github.com/sake2054/bojtag/archive/refs/heads/main.zip 다운로드
  2. 압축 풀기
  3. bojtag-main 폴더를 복사해 wp-content/plugins/ 폴더에 붙여넣기
  4. 플러그인 메뉴에서 활성화

사용

쇼트코드는 boj 입니다. 예를 들어, kimingan의 유저 티어를 보여주고 싶은 경우 [boj u="kimingan"] 을 입력하면 됩니다.

인수는 l, r, t, y, p, at, ar단 하나가 필수로 있어야 하며, s, o는 선택입니다.

BOJ 문제 스타일

  • [boj l="CODE"]
  • 영문으로 보여주고 싶은 경우 [boj l="CODE" o="en"]
  • 커스텀 문구 [boj l="CODE" s="원하는 문구"] : 스페셜 저지 아닌데요
LookCode(l="")o="en"
스페셜 저지spjSpecial Judge
점수partialPoints
전체 채점fullFull
랜덤 방지random-killerRandom
번외unofficialExtra
채점 준비 중preparingPreparing
삭제deletedDeleted
서브태스크subtaskSubtask
성공acSuccess
부분 성공pacPartial Success
wa
언어 제한language-restrictLanguage
제출 횟수 제한submit-limitSubmit
인터랙티브interactiveInteractive
함수 구현funcFunction
투 스텝two-stepsTwo Steps
클래스 구현classClass
feedback
시간 누적time-accTime Accumulation
다국어multilangMultilingual
북마크bookmarkBookmark

주의: 문제 정보를 자동으로 가져오는 것이 아닙니다. BOJ의 웹 스크래핑은 규정으로 금지되어 있으므로, 해당 규정이 수정되거나 API를 제공받지 않는 한 문제 정보를 자동으로 가져오는 기능을 추가할 계획은 없습니다.

BOJ 채점 결과

  • [boj r="CODE"]
  • 영문으로 보여주고 싶은 경우 [boj r="CODE" o="en"]

커스텀 문구를 입력하려면 [boj r="CODE" s="원하는 문구"] 를 입력합니다.
예시: 100점 과 같이 서브태스크 문제에서 점수를 표시하거나, 맞았다요~, 정답도 못 맞춘ww 와 같이 사용할 수 있습니다.

LookCode(r="")o="en"
맞았습니다!!ac, 4Accepted
맞았습니다!!pac, 15Partially Accepted
틀렸습니다wa, 6Wrong Answer
출력 형식이 잘못되었습니다pe, 5Presentation Error
시간 초과tle, 7Time Limit Exceeded
메모리 초과mle, 8Memory Limit Exceeded
출력 초과ole, 9Output Limit Exceeded
런타임 에러rte, 10Runtime Error
컴파일 에러ce, 11Compilation Error
기다리는 중wait, 0Pending
재채점을 기다리는 중[1]기록을 남기지 않는 재채점rejudge-wait, 1Pending Rejudge
채점하지 않음nojudge
채점 준비 중compile, 2Preparing for Judging
채점 중judging, 3Judging
채점 불가co, 12Unavailable
삭제된 제출del, 13Deleted
0초 후 채점 시작[2]반드시 [boj r="remain" s=""] 형식으로 사용해야 합니다.remain, 14
런타임 에러 이유를 찾는 중rtereason, 16Finding RTE reason
맞았습니다!![3]기록을 남기는 재채점* o="re"Accepted

주의: 채점 결과를 자동으로 가져오는 것이 아닙니다. BOJ의 웹 스크래핑은 규정으로 금지되어 있으므로, 해당 규정이 수정되거나 API를 제공받지 않는 한 채점 정보를 자동으로 가져오는 기능을 추가할 계획은 없습니다.

solved.ac 티어

  • 아이콘만 보이는 경우 [boj t="CODE"] : Ruby I
  • 티어 이름까지 보이게 할 경우 [boj t="CODE" o="name"] : Ruby I Ruby I
LookCode(t="")o="name"
Not Ratable-1, nrNot Ratable Not Ratable
Unrated0, urUnrated Unrated
sp
Bronze V1, b5Bronze V Bronze V
Bronze IV2, b4Bronze IV Bronze IV
Bronze III3, b3Bronze III Bronze III
Bronze II4, b2Bronze II Bronze II
Bronze I5, b1Bronze I Bronze I
Silver V6, s5Silver V Silver V
Silver IV7, s4Silver IV Silver IV
Silver III8, s3Silver III Silver III
Silver II9, s2Silver II Silver II
Silver I10, s1Silver I Silver I
Gold V11, g5Gold V Gold V
Gold IV12, g4Gold IV Gold IV
Gold III13, g3Gold III Gold III
Gold II14, g2Gold II Gold II
Gold I15, g1Gold I Gold I
Platinum V16, p5Platinum V Platinum V
Platinum IV17, p4Platinum IV Platinum IV
Platinum III18, p3Platinum III Platinum III
Platinum II19, p2Platinum II Platinum II
Platinum I20, p1Platinum I Platinum I
Diamond V21, d5Diamond V Diamond V
Diamond IV22, d4Diamond IV Diamond IV
Diamond III23, d3Diamond III Diamond III
Diamond II24, d2Diamond II Diamond II
Diamond I25, d1Diamond I Diamond I
Ruby V26, r5Ruby V Ruby V
Ruby IV27, r4Ruby IV Ruby IV
Ruby III28, r3Ruby III Ruby III
Ruby II29, r2Ruby II Ruby II
Ruby I30, r1Ruby I Ruby I
Master31, mMaster Master

solved.ac 유저 티어

  • [boj u="HANDLE"] : kimingan
  • 프로필 사진까지 보이게 할 경우 [boj u="HANDLE" o="pic"] : kimingan
  • 아레나 티어를 보이게 할 경우 [boj u="HANDLE" o="arena"] : kimingan
  • 아레나 티어와 프로필 사진을 동시에 보이는 경우 [boj u="HANDLE" o="arena pic"] : kimingan

1일 이상 새로고침되지 않은 핸들이 로드되면 새로고침됩니다.

예시: kimingan, kimingan, baekjoon, shiftpsh, solvedac, kimingan, kimingan

문제 정보

[boj p="PROBLEM NUMBER"]

문제 번호를 넣으면 문제 제목과 티어를 보여줍니다. 3일 이상 새로고침되지 않은 문제가 로드되면 새로고침됩니다.

예시: 1000, 27904, 27903

아레나 티어

티어를 입력하는 경우

  • [boj at="ARENA TIER"] : C
  • [boj at="ARENA TIER" o="old"] : C
  • [boj at="ARENA TIER" o="alt"] : C

레이팅을 입력하는 경우

  • [boj ar="ARENA RATING"] : A 1234
  • [boj ar="ARENA RATING" o="num"] : 1234
  • [boj ar="ARENA RATING" o="old"] : A 1234
  • [boj ar="ARENA RATING" o="alt"] : A 1234
  • [boj ar="ARENA RATING" o="old alt"] : A 1234 와 같이 옵션 중복 가능
Look | o="alt"Code(at="")Rating
Unrated Unrated0, ur 0
C C1, c 1 ~ 399
C+ C+2, c+ 400 ~ 799
B B3, b 800 ~ 999
B+ B+4, b+ 1000 ~ 1199
A A5, a 1200 ~ 1399
A+ A+6, a+ 1400 ~ 1599
S S7, s 1600 ~ 1799
S+ S+8, s+ 1800 ~ 1999
SS SS9, ss 2000 ~ 2199
SS+ SS+10, ss+ 2200 ~ 2399
SSS SSS11, sss 2400 ~ 2599
SSS+ SSS+12, sss+ 2600 ~ 2999
X X13, x 3000 ~

예시: B, A 1234, 1800

각주

각주
1 기록을 남기지 않는 재채점
2 반드시 [boj r="remain" s=""] 형식으로 사용해야 합니다.
3 기록을 남기는 재채점

🐛

에 참가했습니다. 에디토리얼은 여기서 볼 수 있습니다. 28182점을 기록해 대회에 참가한 561명 중 172등을 기록했습니다.

27903

27903, AC / 2 +44

은 불공평합니다.

코드에 아이디에 포함된 문자를 사용하지 않고 아이디를 출력해야 하는 문제입니다.

코드에 알파벳을 사용하지 않는 언어(아희, Golfscript, Whitespace 등)로 풀면 쉬워집니다. 저는 Brainf**k을 사용해 풀었습니다.

+++++ +++++ [->++ +++++ +++<] >++++ +++.- -.+++ +.--- -.+++ ++.-- -----
.---- --.<+ ++[-> +++<] >++++ .<

12346

☕, AC / 4 +801

Ghudegy 정품 인증
어디서 많이 본 것 같지 않나요...?

구데기를 정품 인증해야 합니다. 이 글에 적혀 있는, 4월 1일에 다녀온 구데기컵 카페에서 리딤 코드를 받았습니다. 이 리딤 코드를 solved.ac에 입력하면 아이템 하나를 받게 되는데, 이 아이템을 사용하면 정품 인증 키를 받을 수 있습니다. 이 키는 사람마다 모두 다릅니다.

Ghudegy 다운로드 및 설치

대회 중 풀었던 문제는 위의 2문제이고, 아래 문제들은 대회 종료 이후 에디토리얼을 참고하여 풀었습니다.

27902

27902, WA / 3

2^n을 출력하면 됩니다. 다만 n이 꽤 큽니다(1 \leq n \leq 100\ 000). 문제 그대로 출력하면 출력 초과, 틀렸습니다 등을 받습니다.

Python 3.10.7 이상에서는 4,300자리를 초과하는 정수를 다루지 못하고,

ValueError: Exceeds the limit (4300) for integer string conversion: value has 5432 digits; use sys.set_int_max_str_digits() to increase the limit.

에러를 냅니다. 이 제한을 해제하기 위해서는 sys.set_int_max_str_digits() 을 사용해야 합니다.

BOJ에서는 기본적으로 이 제한을 해제했기 때문에, 그대로 2^n을 출력하면 안 됩니다. 2^n이 4,300자리를 초과하는 경우 종료하고, 그렇지 않으면 2^n을 출력하면 됩니다.

27905

27905, 시도하지 못함

지문이 길어서 읽고 싶지 않아졌습니다. 사실, 이 문제는 지문을 전부 읽을 필요가 없습니다. 출력 부분을 복사 후 텍스트 에디터에 붙여넣기해보겠습니다.

출력
첫 줄에, 모의 전투에서 양 선수가 최선을 다하는 경우 이기는 사람의 이니셜을 영어 대문자 두 글자로 출력합니다.

원래 출력과 달라졌습니다. 개발자 도구로 뜯어보니, font-size가 0픽셀인 숨겨진 글자를 볼 수 있습니다.

문제를 다시 보겠습니다.

이 게임의 훌륭한 문제 제작자인 서윤이가 훌륭한 수행자인 서연이에게 모의 전투를 걸어 왔습니다. 양쪽이 최선을 다할 때, 누가 이길지를 출력하는 프로그램을 작성하세요.

둘 다 이니셜이 SY네요? 그럼 SY를 출력하면 됩니다.

27907

27907, 시도하지 못함

길이가 n인 소수 등차수열을 출력해야 하는데, n이 최대 30입니다. 에디토리얼에 나와 있듯 현재까지 최고 기록은 그 길이가 27인데, n이 30인 등차수열이 있을까요?

정답은 YES입니다. 이 문제에는 함정이 있습니다. 예제에 나와 있듯 반드시 등차수열이 증가할 필요는 없습니다. 사실 감소할 필요도 없습니다. 즉, 같은 소수로만 이루어진 수열도 등차수열입니다.

아무 소수 하나로만 이루어진 길이가 n인 수열을 출력하면 됩니다.

a = int(input())
for x in range(0, a):
    print("2", end=" ")

27904

27904, 시도하지 못함

승리 조건이 무려 1시간짜리 유튜브 영상으로 올라와 있습니다...

2점짜리 서브태스크 1은 영상의 맨 앞부분만 봐도 풀 수 있습니다. 스크립트는 다음과 같습니다.

만일 4행 1열이 X라면, 만일 1행 1열이 X라면, 만일 2행 3열이 X라면, 만일 4행 2열이 O라면, O가 이겼습니다.

서브태스크 1을 자세히 보면, 지금은 O의 차례이며, X는 1행 1열, 2행 3열과 4행 1열에만 있습니다. 지금 차례에서 4행 2열이 O가 된다면, 또는 이미 O라면 반드시 O가 이깁니다. 그렇다면, 반드시 키파가 이기거나 키파가 승리를 선언할 수 있습니다. 그런데, 둘 중 어느 것을 출력해도 맞았습니다!!를 받을 수 있으므로, 둘 중 아무거나 출력하면 됩니다.

그렇게 저는 2점을 받았습니다.

KIPA IS CUTE 🥰

27899

, 시도하지 못함

예비소집에 출제된 문제였습니다. 예비소집 에디토리얼은 여기서 확인할 수 있습니다.

저는 이때 예비소집에 참가하지 않아 나중에 풀었습니다.

콜라보 카페가 어딘가에서 열리는데, 그 위치의 위도와 경도를 출력해야 합니다. 삼분 탐색 등 다양한 방법을 사용할 수 있는데, 제가 이 문제를 접했을 때는 이미 위치가 공개되어, 노머글얼라우드의 위도와 경도를 제출했습니다. cm 단위까지 정확하지는 않았는지, 2147483426점을 받았습니다.

와쿠 와쿠! 와쿠컵 후기

와쿠컵에 참가했습니다. 에디토리얼은 여기서 볼 수 있습니다. 저는 총 15문제 중 3문제를 풀었고, 590명 중 245등을 기록했습니다.

27959

A, AC / 1 +1

밤고가 가지고 있는 금액은 N\times 100원입니다. 이 금액이 M보다 크거나 같은지 체크해서 그 결과를 출력하면 되는 간단한 문제입니다.

27960

B, AC / 1 +16

각 점수에 대해 최대 한 번씩 더해지기 때문에, A와 B 각각의 점수에서 512, 256, 128… 이렇게 모두 빼서 음수가 나오지 않으면, 그 값을 리스트에 더하고, 리스트에 해당 점수가 1번만 존재하는 경우 이를 모두 더한 값을 출력하도록 했습니다.

그런데 알고보니 bitwise XOR 연산으로 간단히 풀 수 있는 문제였습니다.

30개의 if else를 쓴 나는 무엇…

27964

F, AC / 1 +34

문자열이 Cheese로 끝나야 하고, 서로 다른(중복되지 않은) 치즈가 4개 이상 있어야 합니다.

저는 ‘서로 다른 네 종류의 치즈가’에 꽂혀, 파이썬의 set 자료형을 생각해냈습니다. set은 중복을 허용하지 않습니다. 중복된 것들은 그 중 하나만 살아남습니다.

일단 모든 입력을 set에 저장한 다음, set를 list로 바꾸고, 그 리스트의 마지막 6글자가 “Cheese”인지 검사하고, 그 개수가 4개 이상인지 확인했습니다. 결과적으로 코드가 조금 지저분해졌지만, 맞았으니 됐습니다.

27961

C, 시도하지 못함

이 문제는 대회 중에 풀지는 못했습니다. 대회 중에는 전혀 감이 오지 않았습니다.

아래 에디토리얼을 보고 오겠습니다.

간단하게 말하면, 고양이의 수 N이 2의 x-1승보다 크면서 2의 x승보다 작거나 같다면, 그 N이 답인 것입니다! 그래서 for문으로 2의 x승이 N보다 작거나 같은지를 반복해 검사했습니다.